我有一組類從相同的基類繼承,我需要創建一個工廠方法來實例化基於實現類的GuidAttribute的不同基類實現。所以基本上情況是這樣的:如何從Type.GUID創建對象
abstract class Foo
{
/* ... */
public static Foo Create(Guid guid) {
Type type;
// Resolve the type ?
return Activator.CreateInstance(type) as Foo;
}
}
[Guid("<guid1>")]
class Bar : Foo { ... }
[Guid("<guid2>")]
class Baz : Foo { ... }
是否有任何其他的方式,而不是迭代加載的程序集中的所有類型和緩存結果?
您的回答給我帶來了一個不錯的想法..我可以用T4模板創建字典註冊碼:) – m0sa 2011-03-30 10:07:50