看一下Activator.CreateInstance方法;这使用与指定参数最匹配的构造函数创建指定类型的实例。在您的情况下使用它的一个例子是
Activator.CreateInstance("myAssemblyName", "myType")
所以如果你有以下课程
public class Person
{
private string _name;
public Person() { }
public Person(string name)
{
this._name = name;
}
public string Name
{
get { return this._name; }
set { this._name = value; }
}
}
您可以使用以下内容创建对象实例:
ObjectHandle handle = Activator.CreateInstance("PersonInfo", "Person");
Person p = (Person) handle.Unwrap();
p.Name = "Samuel";
Console.WriteLine(p);
这将打印“塞缪尔”。在您的情况下,KeyValuePair
您可以使用上述方法实例化相关对象。
我希望这有帮助。
编辑。解决其他问题。
Dictionary<String, String> someDict = new Dictionary<String, String>();
someDict = GetDictOfKvpFromCsv(); // Get the dictionary from your CSV.
foreach (KeyValuePair<String, String> kvp in someDict)
{
ObjectHandle handle = Activator.CreateInstance(kvp.Key, kvp.Value);
ISomeType t = (ISomeType)handle.Unwrap();
// Do other stuff...
}