如何从Type创建新的对象实例

有人可能不会在编译时经常识别对象的Type,但可能需要创建Type的实例。 您是如何从Type获取新对象实例的?

0
2019-05-04 21:01:37
资源 分享
答案: 2

执行此操作的一个方法是尝试调用Type的无参数竖立器:

public static object GetNewObject(Type t)
{
    try
    {
        return t.GetConstructor(new Type[] { }).Invoke(new object[] { });
    }
    catch
    {
        return null;
    }
}

下面重合策略,有一个常见的方法:

public static T GetNewObject<T>()
{
    try
    {
        return (T)typeof(T).GetConstructor(new Type[] { }).Invoke(new object[] { });
    }
    catch
    {
        return default(T);
    }
}
0
2019-05-08 04:28:05
资源

origin System命名空间中的Activator类非常有效。

将参数传递给竖立器有很多重载也是如此。 查看以下文件:

http://msdn.microsoft.com/en-us/library/system.activator.createinstance.aspx

或(新课程)

https://docs.microsoft.com/en-us/dotnet/api/system.activator.createinstance

以下是一些简单的实例:

ObjectType instance = (ObjectType)Activator.CreateInstance(objectType);

ObjectType instance = (ObjectType)Activator.CreateInstance("MyAssembly","MyNamespace.ObjectType");
0
2019-05-08 04:09:00
资源