第三方软件提供了名为ProxyGW
的库
这是他们的界面代码
public interface ProxyGW : IProxyGW10, _ProxyGWEvents_Event
{
}
这里是界面_ProxyGWEvents_Event
public interface _ProxyGWEvents_Event
{
event _ProxyGWEvents_onConnectSucceededEventHandler onConnectSucceeded;
}
这是IProxyGW10
界面,位于8,7,6 ....界面!
public interface IProxyGW10 : IProxyGW9
{}
我正在使用Autofac
来获取依赖项注入能力。我已经写成类ProxyGWModule
来注册组件
using Autofac;
using ProxyGWLib;
public class ProxyGWModule: Module
{
protected override void Load(ContainerBuilder builder)
{
builder.Register(ProxyGW);// I get error here
}
}
错误
“ ProxyGW”是一种类型,在给定上下文ProxyGWModule.cs中无效
如果我喜欢这样的话,错误就会出现
ProxyGW proxygw = new ProxyGW();
builder.RegisterInstance(proxygw).As<IProxyGW10>(); //which interface shall be part of
这是正确的方法吗?如果是,_ProxyGWEvents_Event
界面会怎样?我想访问_ProxyGWEvents_Event
我尝试如下
builder.RegisterInstance(ProxyGWClass);
错误
互操作类型'ProxyGWClass'无法嵌入。请改用适用的界面。 ProxyGWModule.cs
根类如下所示。 IProxyGW9,IProxyGW8 .....是不同的版本。显然,我们只使用其中之一。
public class ProxyGWClass : IProxyGW10, ProxyGW, _ProxyGWEvents_Event, IProxyGW9, IProxyGW8, IProxyGW7, IProxyGW6, IProxyGW5, IProxyGW4, IProxyGW3, IProxyGW2 {}
所以,下面没有显示任何错误
ProxyGW proxygw = new ProxyGW();
builder.RegisterInstance(proxygw).As<IProxyGW9>().As<_ProxyGWEvents_Event>();