0
我遇到的情况,我的客户是WPF
应用让我们说W
,有3个总成说A
,B
,C
未暴露于W
,因此3个组件在一个具体的工厂引用,说F
这创建所需的实例并提供给W
。如何在另一个引用程序集中加载引用程序集?
我在F
中使用反射来生成3个对象。
下面是代码,如果我在W
引用A
return (IClass)Activator.CreateInstance(Assembly.Load("A").GetType("A.AClass"),
BindingFlags.NonPublic | BindingFlags.Instance, null, null, null);
代码工作,但是当A
在F
被引用不起作用(System.IO.FileNotFound Exception
)(我十字Assembly.GetExecutingAssembly().GetReferencedAssemblies()
检查和A
未装载)。
我看到如果不需要,可能不会加载Assembly
。但是,我的WPF
客户端如何加载程序集。如果这是预期的行为,我会找到当前的Directory
路径并将其附加A.dll
。 有什么想法吗?
您是否尝试过使用['AppDomain.AssemblyResolve'](http://msdn.microsoft.com/pl-pl/library/system.appdomain.assemblyresolve(v = vs.110).aspx)处理程序? –
这不是一个后备技术,我的意思是我能够实际获得原始所需的程序集? –
据我所知,你知道这需要大会,所以你可以通过'Assembly.LoadFrom'提供它 –