使用string创建System.Diagnostics.ConsoleTraceListener的实例

时间:2013-04-02 13:19:56

标签: c# reflection instance system.diagnostics diagnostics

我正在尝试使用字符串创建System.Diagnostics.ConsoleTraceListener的实例,我从xml文件中获取该字符串。

Dictionary<string, TraceListener> dListeners = new Dictionary<string, TraceListener>();
string sType = "System.Diagnostics.ConsoleTraceListener";
Type oType = Type.GetType(sType);//getting null here
dListeners["Listener1"] = (TraceListener)Activator.CreateInstance(oType);

我上面的oType为null。我无法弄清楚为什么,缺少什么?我是否还需要在字符串中指定程序集名称?

1 个答案:

答案 0 :(得分:0)

在指定程序集的完全限定名称后,我能够创建实例。

谢谢@Hans

Dictionary<string, TraceListener> dListeners = new Dictionary<string, TraceListener>();
string sType = "System.Diagnostics.ConsoleTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
Type oType = Type.GetType(sType);              
dListeners["Listener1"] = (TraceListener)Activator.CreateInstance(oType);