使用类库从主MVC应用程序创建类的对象c#

时间:2017-10-30 07:37:08

标签: c# .net asp.net-mvc

我想使用Activator实例化一个类的对象。CreateInstance。所以,我有一个ASP.Net MVC项目,我有一个名为Modal的文件夹,在其下我有一个类TestClass.cs

现在我有另一个类库项目。所以我在我的类库项目的一个类中编写了实例化登录,并将.dll文件复制到我的主ASP.Net MVC项目中。

现在,从我的主项目中,我请求我最近添加的类库项目,通过传递我的类的FullyQualified名称来创建类的对象。

EX:

ASP.Net MVC项目

------------------------------
`
namespace MyProject.Modal
{
    public class TestClass
    {
        public TestClass()
        {
        }
    }
}
`

类库项目代码

`

namespace SpringNet.FactoryContext
{
   public class CreateInstance
   {        
     public Object GetClass(string FullyQualifiedName)
     {
        Object NewClassType = null;
        Type ClassName = Type.GetType(FullyQualifiedName);
        NewClassType = Activator.CreateInstance(ClassName);
        return NewClassType;
     }
   }
}

`

现在我构建了我的类库项目,并添加了对我的ASP.Net MVC项目的引用,并尝试创建该对象。

CreateInstance instance = new CreateInstance();
var NewObject = instance.GetClass("MyProject.Modal.TestClass");

打电话给我之后我得到了异常

  • Type ClassName = Type.GetType(FullyQualifiedName);

在这一行只有我无法获得我要求的类型。

请帮忙。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

你可以尝试这个:

namespace SpringNet.FactoryContext
{
   public class CreateInstance
   {        
     public Object GetClass(string assemblyName,string className)
     {
        return Activator.CreateInstance(assemblyName, className);
     }
   }
}

然后

 CreateInstance instance = new CreateInstance();
    var NewObject = instance.GetClass("MyProject", "MyProject.Modal.TestClass");

已更新:为什么Type.GetType返回null

Type.GetType("namespace.a.b.ClassName") returns null