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

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

4

1 回答 1

1

听起来这可以完成这项工作:

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

使用CreateInstance(Type)重载可以保证定义类型的程序集已经加载,因此重载可以自由地返回一个直接的object.

于 2013-09-16T11:57:06.623 回答