是否可以通过iis托管的wcf服务中的程序集解析事件加载程序集。我不希望通过GAC或bin文件夹加载程序集。可能吗?感谢。
答案 0 :(得分:0)
我认为您不能使用AppDomain.AssemblyResolve事件,但您可以尝试using MEF使用DirectoryCatalog解决实际实施问题。
所以你的SVC代码背后(或者你可以删除后面的代码并将你的SVC指向一个单独的程序集中的类)看起来像这样(未经测试)。我没有尝试过这种特定方法,但我认为没有任何理由不起作用。
public class YourServiceClass : YourServiceContract
{
[Import]
private IContract Implementation { get; set; }
private DirectoryCatalog _directoryCatalog = null;
private CompositionContainer _container = null;
public YourServiceClass()
{
_directoryCatalog = new DirectoryCatalog(YourDirectoryPathHere);
_container = new CompositionContainer(_directoryCatalog);
_container.ComposeParts(this);
}
//Operation
public void DoSomething()
{
Implementation.DoSomething();
}
}
如果有意义的话,您也可以将MEF代码移动到基类。如果您是MEF的新手,请参阅教程using MEF with a DirectoryCatalog。