c# - Autofac 和跨 AppDomain 代理

标签 c# proxy appdomain autofac realproxy

我正在尝试使用 Autofac 注册跨 AppDomain 代理。

代理表示的具体类型实现接口(interface) IServiceHost。因此,代理也应该允许使用该接口(interface)调用代理。

我尝试通过以下方式向 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 并且它来自强类型方法参数。

谁能解释一下如何正确注册代理?

最佳答案

您应该能够将 lambda 与 .Register() 方法(而不是 .RegisterInstance())结合使用来解决这个问题。

关于c# - Autofac 和跨 AppDomain 代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9584873/

相关文章:

c# - 具有 Oracle 托管驱动程序将 NUMBER(10) 映射到 long 的 Entity Framework 不起作用

c# - 如何在不在 C# 中定义模型类的情况下向现有 json 添加新属性?

c# - 我可以覆盖 Convert.ToDateTime() 吗?

C# WCF 客户端需要很长时间才能打开状态 (DuplexClientBase<T>.Open())

c# - FileVersionInfo.GetVersionInfo 显示替换文件的错误版本

c# - Ninject 'Get'方法可以缓存值吗?

proxy - 在kubernetes集群中设置no_proxy

wcf - WCF 代理生命周期的最佳实践 - 或者多久关闭一次 WCF 代理?

proxy - yum repo 的 url 中带有 cntlm 代理和基本身份验证参数的空服务器响应

c# - AppDomain 卷影复制不起作用(原始程序集已锁定)