我寫了下面的Utility類來獲取任何類名稱「className」的實例。C#反射實用程序
public class AssemblyUtils
{
private AssemblyUtils()
{
}
public static T GetInstance<T>(string assemblyName, string className)
{
T classInstance = default(T);
System.Reflection.Assembly assembly = System.Reflection.Assembly.Load(assemblyName);
object o = assembly.CreateInstance(className);
if (o is T)
{
classInstance = (T)o;
}
else
{
o = null;
}
return classInstance;
}
我已經叫這個名字:
IMyInterface ins = AssemblyUtils.GetInstance<IMyInterface>(@"MyNamespace.DA.dll", "MyClassDA");
但我收到以下錯誤消息:
Could not load file or assembly 'MyNamespace.DA.dll' or one of its dependencies. The system cannot find the file specified.
需要注意的是,我打電話從單獨的程序集的AssemblyUtils.GetInstance()它們在同一個sln中。
我該如何解決組裝路徑?
PrivateBinPath只能設置爲應用程序的基本目錄下的文件夾。它不能設置爲任何文件夾。因此,只要程序集位於應用程序的文件夾層次結構中,就可以工作。 –
@Mike二。好點子。感謝您的澄清。 – Vadim