MEF を使用して WCF RIA ドメイン サービスを構成することは可能ですか?
ドメイン サービスに以下のプロパティがあるとします。
[Import(RequiredCreationPolicy = CreationPolicy.Shared)]
public TestClass Dependency{ get; set; }
そしてTestClass..
[Export]
public class TestClass
{
public void Do()
{
}
}
そして、私は DomainServiceFactory クラスを持っています:
public class DomainServiceFactory : IDomainServiceFactory
{
private readonly ComposablePartCatalog _catalog;
private readonly CompositionContainer _container;
public DomainServiceFactory()
{
_catalog = new TypeCatalog(typeof(DomainService1), typeof(DomainService2));
_container = new CompositionContainer(_catalog);
//What should I call here? _container.SatisfyImportsOnce(this);
}
#region Implementation of IDomainServiceFactory
public DomainService CreateDomainService(Type domainServiceType, DomainServiceContext context)
{
DomainService domainService;
var export = _container.GetExports(domainServiceType, null, null).FirstOrDefault();
if(export != null)
{
domainService = (DomainService) export.Value;
}
else
{
domainService = (DomainService)Activator.CreateInstance(domainServiceType);
}
domainService.Initialize(context);
return domainService;
}
public void ReleaseDomainService(DomainService domainService)
{
domainService.Dispose();
}
#endregion
}
SatisfyImportsOnce はコンテナーを構築する方法ですか? 入力パラメーターは ComposablePart ですが、何を渡す必要がありますか?
よろしく。