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 に答える