需要一种创建对象的类型安全方法

时间:2013-09-16 11:52:49

标签: c# reflection activator

string attribute = doc.SelectSingleNode("/class/@name").Value.ToString();
ObjectHandle employee = Activator.CreateInstance("EmployeeData", attribute);
Object employeeObject = employee.Unwrap();
return employeeObject;

'EmployeeData'是当前正在执行的程序集。从XML文件的入口节点中选择属性。我需要以更安全的方式创建和返回一个对象,而不使用ObjectHandle和UnWrap()。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

听起来这可以胜任:

var type = Assembly.GetExecutingAssembly().GetType(attribute);
return Activator.CreateInstance(type);

使用CreateInstance(Type)重载可确保已加载定义类型的程序集,以便重载可以直接返回object