シンプルなインターフェースを介していくつかの複雑な機能を公開するライブラリにファサードがあります。私の質問は、ファサードで使用される内部型の依存性注入をどのように行うかです。私のC#ライブラリコードが次のようになっているとしましょう -
public class XYZfacade:IFacade
{
[Dependency]
internal IType1 type1
{
get;
set;
}
[Dependency]
internal IType2 type2
{
get;
set;
}
public string SomeFunction()
{
return type1.someString();
}
}
internal class TypeA
{
....
}
internal class TypeB
{
....
}
そして、私のウェブサイトのコードは次のようなものです-
IUnityContainer container = new UnityContainer();
container.RegisterType<IType1, TypeA>();
container.RegisterType<IType2, TypeB>();
container.RegisterType<IFacade, XYZFacade>();
...
...
IFacade facade = container.Resolve<IFacade>();
ここで、facade.someFunction() は、facade.type1 とfacade.type2 が null であるため、例外をスローします。どんな助けでも大歓迎です。