0

我有以下问题:

我在第一个程序集中有一些类和接口:

public interface IA {}
public interface IB : IA {}
internal class C : IB {}

并且类 C 在此程序集中的 Unity 容器中注册。

Container.RegisterType<IB, C>();

现在我想注册类似的东西

Container.RegisterType<IA, C>();

在另一个程序集中,但 C 类不可访问。和

Container.RegisterType<IA, IB>();

不起作用,因为 IB 是接口。如何将基本接口 IA 与已注册的 IB 链接?

非常感谢!

4

2 回答 2

2

您根本无法在另一个库中使用内部类型,但您可以解析IB,这样:

Container.RegisterType<IA>(new InjectionFactory(x=>x.Resolve<IB>()));
于 2012-09-25T09:48:15.963 回答
1

您基本上是在尝试使用标记为内部的实现,来自另一个程序集,这是行不通的。如果您想在其他地方使用它,您需要取消内部资格。

于 2012-09-25T09:40:56.403 回答