.Net RIA 服务:DomainService 需要无参数构造函数?

2023-12-25

我在带有一些 Silverlight 组件的 ASP.Net 应用程序中使用 .Net RIA 服务的 7 月 CTP。我正在从 Silverlight 调用 RIA 服务。

当我尝试在域服务(LinqToEntitiesDomainService 对象)中使用 Unity 和构造函数依赖注入时,出现了问题。 Silverlight 应用程序现在抱怨没有无参数构造函数。

我不想有无参数构造函数,我希望 Unity 解析构造函数参数。这可能吗?难道我做错了什么?或者我应该找到另一种方法来注入构造函数参数?

public class DashboardService : LinqToEntitiesDomainService<DashboardEntities>
{
    private IUserService userService;

    public DashboardService(IUserService userService)
        : base()
    {
        if (userService == null)
        {
            throw ExceptionBuilder.ArgumentNull("userService");
        }
        this.userService = userService;
    }

    ...

这是我收到的错误:

Webpage error details

User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Timestamp: Tue, 18 Aug 2009 14:34:54 UTC


Message: Unhandled Error in Silverlight 2 Application No parameterless constructor defined for this object.   at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck)
   at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache)
   at System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache)
   at System.Activator.CreateInstance(Type type, Boolean nonPublic)
   at System.Web.DomainServices.DomainService.DefaultDomainServiceFactory.CreateDomainService(Type domainServiceType, DomainServiceContext context)
   at System.Web.Ria.DataServiceFactory.GetDataService(HttpContext context)
   at System.Web.Ria.DataServiceFactory.System.Web.IHttpHandlerFactory.GetHandler(HttpContext context, String requestType, String url, String pathTranslated)
Line: 1
Char: 1
Code: 0
URI: http://dev.localhost/Home

由于您有一个在其构造函数中带有参数的 DomainService,并且更通常需要通过某种 IoC 容器或依赖项注入系统来构造,因此您需要提供一个应用程序级域服务工厂。然后,您的工厂负责实例化域服务(并处置它),并且可以通过调用另一个 API(例如您的情况下的 Unity)来实现此目的。

这是一个基本示例:

在应用程序的 Global.asax.cs 中,添加以下内容:

public class Global : HttpApplication {

    static Global() {
        DomainService.Factory = new MyAppDomainServiceFactory();
    }
}

internal sealed class MyAppDomainServiceFactory : IDomainServiceFactory {

    public DomainService CreateDomainService(Type domainServiceType,
                                             DomainServiceContext context) {
        DomainService ds = ... // code to create a service, or look it up
                               // from a container

        if (ds != null) {
            ds.Initialize(context);
        }
        return ds;
    }

    public void ReleaseDomainService(DomainService domainService) {
        // any custom logic that must be run to dispose a domain service
        domainService.Dispose();
    }
}

希望有帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.Net RIA 服务:DomainService 需要无参数构造函数? 的相关文章

  • 使用 C# 登录《我的世界》

    我正在尝试为自己和一些朋友创建一个简单的自定义 Minecraft 启动器 我不需要启动 Minecraft 的代码 只需要登录的实际代码行 例如 据我所知 您过去可以使用 string netResponse httpGET https
  • GetType() 在 Type 实例上返回什么?

    我在一些调试过程中遇到了这段代码 private bool HasBaseType Type type out Type baseType Type originalType type GetType baseType GetBaseTyp
  • C++ 是否可以在 MacOS 上与 OpenMP 和 boost 兼容?

    我现在已经尝试了很多事情并得出了一些结论 也许 我监督了一些事情 但似乎我无法完成我想要的事情 问题是 是否有可能使用 OpenMP 和 boost 在 MacOS High Sierra 上编译 C 一些发现 如果我错了请纠正我 Open
  • 如何填充 ToolStripComboBox?

    我发现它很难将数据绑定到ToolStripComboBox 好像没有这个ValueMember and DisplayMember特性 怎么绑定呢 访问toolstripcombobox中包装的组合框并访问其ValueMember Disp
  • 当一组凭据下的计划任务启动的进程在另一组凭据下运行另一个程序时,Windows 是否有限制

    所以我有一个简单的例子 其中我有应用程序 A 它对用户 X 本地管理员 有一些硬编码的凭据 然后它使用硬编码的绝对路径启动带有这些凭据的应用程序 B A 和 B 以及 dotnet 控制台应用程序 但是它们不与控制台交互 只是将信息写入文件
  • 查看 NuGet 包依赖关系层次结构

    有没有一种方法 文本或图形 来查看 NuGet 包之间的依赖关系层次结构 如果您使用的是新的 csproj 您可以在此处获取所有依赖项 在项目构建后 项目目录 obj project assets json
  • Visual Studio 在构建后显示假错误

    我使用的是 Visual Studio 2017 构建后 sln在调试模式下 我收到错误 但是 当我通过双击错误列表选项卡中的错误来访问错误时 错误会从页面中消失 并且错误数量也会减少 我不太确定这种行为以及为什么会发生这种情况 有超过 2
  • 使用可变参数包类型扩展的 C++ 函数调用者包装器

    我绑定了一些 API 并且绑定了一些函数签名 如下所示 static bool WrapperFunction JSContext cx unsigned argc JS Value vp 我尝试将对象和函数包装在 SpiderMonkey
  • unordered_map 中字符串的 C++ 哈希函数

    看起来 C 标准库中没有字符串的哈希函数 这是真的 在任何 c 编译器上使用字符串作为 unordered map 中的键的工作示例是什么 C STL提供模板专业化 http en cppreference com w cpp string
  • 告诉 Nancy 将枚举序列化为字符串

    Nancy 默认情况下在生成 JSON 响应时将枚举序列化为整数 我需要将枚举序列化为字符串 有一种方法可以通过创建来自定义 Nancy 的 JSON 序列化JavaScript 原始转换器 https github com NancyFx
  • 将 Long 转换为 DateTime 从 C# 日期到 Java 日期

    我一直尝试用Java读取二进制文件 而二进制文件是用C 编写的 其中一些数据包含日期时间数据 当 DateTime 数据写入文件 以二进制形式 时 它使用DateTime ToBinary on C 为了读取 DateTime 数据 它将首
  • 为什么从字典中获取时会得到 Action<> 的克隆?

    我有以下字典 private Dictionary
  • 如何在 C 中安全地声明 16 位字符串文字?

    我知道已经有一个标准方法 前缀为L wchar t test literal L Test 问题是wchar t不保证是16位 但是对于我的项目 我需要16位wchar t 我还想避免通过的要求 fshort wchar 那么 C 不是 C
  • 为什么我的单选按钮不起作用?

    我正在 Visual C 2005 中开发 MFC 对话框应用程序 我的单选按钮是 m Small m Medium 和 m Large 它们都没有在我的 m Summary 编辑框中显示应有的内容 可能出什么问题了 这是我的代码 Pizz
  • C++ 中的双精度型数字

    尽管内部表示有 17 位 但 IEE754 64 位 浮点应该正确表示 15 位有效数字 有没有办法强制第 16 位和第 17 位为零 Ref http msdn microsoft com en us library system dou
  • 等待 IAsyncResult 函数直至完成

    我需要创建等待 IAsyncResult 方法完成的机制 我怎样才能做到这一点 IAsyncResult result contactGroupServices BeginDeleteContact contactToRemove Uri
  • Unity:通过拦截将两个接口注册为一个单例

    我有一个实现两个接口的类 我想对该类的方法应用拦截 我正在遵循中的建议Unity 将两个接口注册为一个单例 https stackoverflow com questions 1394650 unity register two inter
  • WebBrowser.Print() 等待完成。 。网

    我在 VB NET 中使用 WebBrowser 控件并调用 Print 方法 我正在使用 PDF 打印机进行打印 当调用 Print 时 它不会立即启动 它会等到完成整个子或块的运行代码 我需要确保我正在打印的文件也完整并继续处理该文件
  • 实体框架中的“it”是什么

    如果以前有人问过这个问题 请原谅我 但我的任何搜索中都没有出现 它 我有两个数据库表 Person 和 Employee 对每个类型的表进行建模 例如 Employee is a Person 在我的 edmx 设计器中 我定义了一个实体
  • 不区分大小写的字符串比较 C++ [重复]

    这个问题在这里已经有答案了 我知道有一些方法可以进行忽略大小写的比较 其中涉及遍历字符串或一个good one https stackoverflow com questions 11635 case insensitive string

随机推荐

  • 如何获取Python中捕获的异常的名称?

    如何获取 Python 中引发的异常的名称 e g try foo bar except Exception as exception name of exception assert name of exception NameError
  • goroutine创建多个mongodb连接

    如何在golang中管理超过100000个goroutine的MongoDB连接 我已经创建了一个 mongo Client实例然后使用同一个客户端 但它创建了多个连接 The mongo Client https pkg go dev g
  • 如何使用python正则表达式替换使用捕获的组? [复制]

    这个问题在这里已经有答案了 假设我想改变the blue dog and blue cat wore blue hats to the gray dog and gray cat wore blue hats With sed我可以按如下方
  • 如何在 C 中将 2 字节整数转换并分解为 2 个不同的字符?

    我想转换一个 unsigned int 并将其分成 2 个字符 例如 如果整数为 1 则其二进制表示形式为 0000 0001 我希望 0000 部分位于一个 char 变量中 0001 部分位于另一个二进制变量中 我如何在 C 中实现这一
  • 对象“RealmSwiftPermissionRole”上不存在主键属性“名称”

    我在我的 swift 项目中使用 RealmSwift 作为数据库 今天 在 Xcode beta 版本 11 中打开我的项目后 我的应用程序崩溃并出现以下错误 由于未捕获的异常 RLMException 而终止应用程序 原因 对象 Rea
  • 跨进程(和机器)同步(信号量)

    背景 我的 WCF 应用程序必须调用一个没有任何并发 检查的服务 它是由第三方创建的服务 让他们添加并发检查可能是不可能的 我可以确保调用第三方服务的唯一方法是通过我的 WCF 应用程序 所以我正在考虑在我的代码中添加并发检查 为此 我将使
  • 与 APN 名称相关的问题

    我正在使用 simcom900 调制解调器 我能够成功建立 GPRS 连接并将数据从我的模块发送到服务器 我正在使用 2g Airtel SIM 我已将 APN 名称指定为 airtelgprs com 我也尝试过指定不同的 APN与 Ai
  • 在 React+Django 应用程序中加载图像

    所以我有一个用 python django 编写的小项目作为后端 并为前端做出反应 我按照以下教程进行操作 http geezhawk github io using react with django rest framework htt
  • 使用 htaccess 重定向到移动网站

    如何将用户重定向到我的移动页面 我在 htaccess 上使用此代码 RewriteEngine on RewriteCond QUERY STRING desktop RewriteCond HTTP USER AGENT android
  • Mock 对象和 Spring 注解

    我在代码中使用 Spring 注释来执行 DI 假设我有一个类 class1 依赖于另一个类 class2 我定义 class1 如下 Component public class class1 Resource private inter
  • 使用单个操作/规则生成多个目标[重复]

    这个问题在这里已经有答案了 如何编写规则来使用单个操作生成文件集 例子 文件x y z作为单次执行脚本的结果生成t sh它需要文件a作为输入 x y z a t sh GNU make 尝试执行t sh3次 您可以实施中指定的解决方案之一汽
  • 如何加载实体框架预编译视图

    我发现我可以通过使用预编译视图来提高应用程序的性能EdmGen exe tool 这一切都很好 但我和我的大学都无法解决这个问题how生成的 cs文件实际被项目使用 似乎没有任何对任何地方生成的类的引用 那么它是如何被包含在内的呢 任何人都
  • Spring Cloud Stream 多个函数定义

    是否有可能使用函数式 spring cloud function 具有多个独立函数 绑定的样式 我发现的所有示例始终只注册一个具有默认绑定的功能 beaninput output 我想注册多个 每个都有自己的绑定 传统上这可以使用sprin
  • 领域数据库解密失败

    Question 当我尝试打开加密领域文件时Realm Browser Windows 它给了我以下消息 这不是 Realm 文件或者已加密 输入 128 个字符的十六进制编码的加密密钥 重要的 我在保存到磁盘之前关闭我的领域 Code R
  • system()的返回码 = 256

    我使用 system 在 Swift 中执行 shell 命令 正如文档中所述 如果成功 返回值应为 0 如果失败 则返回值应为 1 但我得到 256 并且执行似乎成功了 还有一些其他与魔法值 256 相关的问题 但语言不同 没有解决方案
  • 如何从 NodeJS/Tedious 连接到 SQL Azure?

    我有一个 SQL Azure 数据库 正在尝试从 Azure Linux VM 中运行的 NodeJS 应用程序连接到该数据库 当我在本地 SQL 数据库 和 NodeJS 本地计算机上时 一切工作正常 但是 当我从虚拟机运行时 我得到以下
  • Java 中的弯曲文本

    我正在寻找最简单的方法来绘制一些 我的应用程序上椭圆对象周围的文本 我需要创造一种 拥抱 的感觉 到目前为止 我已经使用 Graphics2D 类来打印我的绘图 在屏幕上 我的 画布 是 BufferedImage 我的椭圆的宽度和高度分别
  • Microsoft.IdentityModel 与 System.IdentityModel

    我正在使用表单身份验证和 ASP NET MVC 2 开发基于声明的授权系统 我看到一个命名空间 Microsoft IdentityModel 提供了许多与另一个 System IdentityModel 相同的内容 系统 身份模型 ht
  • boost测试库:多重定义错误

    我正在尝试在 Windows 版 QTCreator 中测试我已经完成的库 微积分 我创建了一个主文件 并在一个单独的文件中创建了一个类用于测试 如果我编译在中找到的示例http www boost org doc libs 1 47 0
  • .Net RIA 服务:DomainService 需要无参数构造函数?

    我在带有一些 Silverlight 组件的 ASP Net 应用程序中使用 Net RIA 服务的 7 月 CTP 我正在从 Silverlight 调用 RIA 服务 当我尝试在域服务 LinqToEntitiesDomainServi