私はMVC(4)アプリケーションを持っており、アセンブリAIではこれをglobal.asax(Application_Start())に持っています:
ObjectFactory.Configure(x =>
{
x.For<IPerson>().Use<Person>();
x.For<IObjectCreator>().Use<StructureMapObjectCreator>();
x.For<IPersonRepository>().Use<PersonRepository>();
});
これはアセンブリAで機能します。
これで、アセンブリBができました。アセンブリBもWebアプリケーションであり、アセンブリAへの参照があります。アセンブリAで定義されたバインディングは、アセンブリBからアクセスできる必要があります。したがって、アセンブリBIでIPersonを使用する場合、アセンブリA。
アセンブリBでいくつかのことを試しましたが、理解できません。これが私の最後の試みです:
アセンブリBのGlobal.asax(Application_Start()内):
var mainAssembly = Assembly.GetAssembly(typeof(IObjectCreator));
ObjectFactory.Configure(x =>
{
x.For<IProduct>().Use<Product>();
x.Scan(assembly =>
{
assembly.Assembly(mainAssembly);
});
});
アセンブリBでアセンブリAのバインディングを使用するにはどうすればよいですか?