加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – Autofac和跨AppDomain代理

发布时间:2020-12-15 17:24:24 所属栏目:百科 来源:网络整理
导读:我正在尝试使用Autofac注册跨AppDomain代理. 代理表示的具体类型实现了IServiceHost接口.因此,代理也应该,以允许使用该接口的代理调用工作. 我尝试通过以下方式向Autofac注册代理: void Initialize(IServiceHost host){ Host = host; var builder = new Con
我正在尝试使用Autofac注册跨AppDomain代理.

代理表示的具体类型实现了IServiceHost接口.因此,代理也应该,以允许使用该接口的代理调用工作.

我尝试通过以下方式向Autofac注册代理:

void Initialize(IServiceHost host)
{
    Host = host;

    var builder = new ContainerBuilder();
    builder.RegisterInstance(host)
        .As<IServiceHost>()
        .SingleInstance();

    Scope = builder.Build();
}

但是,在builder.Build()调用中,我得到:

ArgumentException

The type ‘System.MarshalByRefObject’ is not assignable to service ‘Treadmarks.Core.ServiceBase.IServiceHost’.

但是,host绝对是一个IServiceHost,因为它不是null,而是来自一个强类型的方法参数.

任何人都可以解释我如何正确注册代理?

解决方法

您应该能够使用带有.Register()方法的lambda而不是.RegisterInstance()来解决此问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读