gpt4 book ai didi

c# - C#反射实用程序

转载 作者:太空宇宙 更新时间:2023-11-03 18:19:19 25 4
gpt4 key购买 nike

我编写了以下Utility类来获取名称为“ className”的任何类的实例。

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.


请注意,我从同一sln中的单独程序集调用AssemblyUtils.GetInstance()。

我该如何解决组装路径???

最佳答案

我的猜测是它找不到程序集,因为它不在同一文件夹中,也不在GAC或系统正在寻找的其他目录中。

您需要将它们移动到与执行程序集相同的文件夹中。您可以使用AppDomainSetup.PrivateBinPath Property更改从中加载程序集的文件夹。

关于c# - C#反射实用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1416119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com