1
我新來c#和我想創建一個方法,它需要一個字符串,然後它實例化一個對象使用該字符串作爲類型。字符串文字轉換爲類型或名稱空間的泛型c#
public void CreateRepository(string name) {
var repository = new Repository<name>();
}
例如,
顯然我得到一個編譯器錯誤,但我如何將我的字符串轉換爲命名空間?
我新來c#和我想創建一個方法,它需要一個字符串,然後它實例化一個對象使用該字符串作爲類型。字符串文字轉換爲類型或名稱空間的泛型c#
public void CreateRepository(string name) {
var repository = new Repository<name>();
}
例如,
顯然我得到一個編譯器錯誤,但我如何將我的字符串轉換爲命名空間?
你能做到這樣:
public void CreateRepository(string name)
{
var type = Type.GetType(name);
var genericRepositoryType = typeof(Repository<>).MakeGenericType(type);
var repositoryObj = Activator.CreateInstance(genericRepositoryType);
// N.B. repositoryObj variable is System.Object
// but is also an istance of Repository<name>
}
爲什麼你要這樣來做?爲什麼你需要從字符串中創建這個類型,以後你想對結果做什麼? – svick 2010-10-03 12:56:06