【发布时间】:2016-10-29 15:51:46
【问题描述】:
我正在尝试通过反射加载程序集System.Speech,以便我可以使用SpeakAsync 方法大声朗读一些文本。
这是我写的:
System.Reflection.Assembly assembly = System.Reflection.Assembly.LoadFrom("System.Speech.dll");
System.Type type = assembly.GetType("System.Speech.SpeechSynthesizer");
var methodinfo = type.GetMethod("SpeakAsync", new System.Type[] {typeof(string)} );
if (methodinfo == null) throw new System.Exception("No methodinfo.");
object[] speechparameters = new object[1];
speechparameters[0] = GetVerbatim(text); // returns something like "+100"
var o = System.Activator.CreateInstance(type);
methodinfo.Invoke(o, speechparameters);
但得到错误
System.NullReferenceException: Object reference not set to an instance of an object
【问题讨论】:
-
@Marksl 我查看了第一个问题以获取我目前拥有的代码,但正如您在上面看到的,它不起作用,所以......
-
您的问题被否决了,因为它是一个代码转储,后跟一个空引用异常。没有证据表明您进行了研究。
-
@BJMyers 未来,我打算如何证明这项研究?
标签: c# reflection .net-assembly