2

我在 C# 中有 2 个不同的项目。我正在编写代码以在第一个项目中使用反射创建类对象。现在我想创建第二个项目中的类对象。我怎样才能做到这一点。我正在使用如下代码

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

当我在项目 1 中创建类的对象时,此代码正在工作,但是当我在项目 2 中创建类的对象时,类型为空,即使我正在传递像 xxx.xx.classname 这样的全名。

4

3 回答 3

0

您可能需要首先引用第二个项目的 .dll。右键单击引用文件夹并单击“添加引用...”,然后找到第二个项目的已编译 dll 并添加它。

于 2013-01-30T12:21:05.893 回答
0

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

    SomeObject.MethodInTargetProject(Type.GetType(FullTypeName));

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

我希望这有帮助。

于 2015-08-05T10:04:48.337 回答
-1

可能是您传递的类名可能不正确...首先创建一个测试方法并如下标识类名。

string fullName=typeof(YourClass).FullName;

然后复制“fullName”的值,然后在您的代码中使用。

于 2013-10-01T11:57:05.923 回答