使用反射创建位于不同项目中的类的对象



我在 C# 中有 2 个不同的项目。我正在编写代码,用于在第一个项目中使用反射创建类对象。现在我想创建第二个项目中的类对象。我该怎么做。我正在使用如下代码

Type type = Type.GetType("qualified class name");
var obj = Activator.CreateInstance(type);
Type objType = obj.GetType();

当我在项目 1 中创建类的对象时,此代码有效,但是当我创建项目 2 中的类对象时,类型为空,即使我传递全名,如 xxx.xx.classname。

您可能需要在第一个项目中引用第二个项目的.dll。右键单击引用文件夹,然后单击"添加引用..."然后找到第二个项目的编译 DLL 并添加它。

也许这不是您要找的,但我通过在源项目中创建类型并将类型传递给另一个项目中的方法来解决我的问题。

    SomeObject.MethodInTargetProject(Type.GetType(FullTypeName));
    public void MethodInTargetProject(Type formType)
    {
        if (newFormType == null)
            return;
        var obj = Activator.CreateInstance(newFormType);
        ...
    }

我希望这有所帮助。

可能是类名,无论你传递什么,都可能不正确......首先创建一个测试方法并确定类名,如下所示。

string fullName=typeof(YourClass).FullName;

然后复制"全名"的值,然后在代码中使用。

相关内容

  • 没有找到相关文章

最新更新