0
是否可以使用MEF来组成WCF RIA域服务?MEF - 如何撰写WCF RIA DomainService?
比方说,我有以下域服务属性:
[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,我应该传入什么?
问候。
当调用GetExports(...)时,我得到空。这就是为什么我认为它没有初始化。 – Alberto 2012-07-27 17:34:14
您是否已经使用特定合约导出了您的类型I.e [Export(typeof(DomainService))]还是仅[Export]? – 2012-07-27 17:49:09
只需[导出]。星期一将尝试[导出(typeof(DomainService))]。没有意识到。 – Alberto 2012-07-27 17:52:06