Я пытаюсь загрузить сборку, System.Speech
, через отражение, так что я могу использовать метод SpeakAsync
для чтения вслух некоторого текста.C# как загрузить сборку с отражением
Я написал:
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
Это выглядит как дубликат: http://stackoverflow.com/questions/14479074/c-sharp-reflection-load-assembly-and-invoke-a-method-if-it-exists Может быть, это часть проблемы тоже: http://stackoverflow.com/questions/6049332/i-cant-find-system-speech – Marksl
@Marksl Я посмотрел на этот первый вопрос, чтобы получить код, который у меня есть на данный момент, но поскольку вы можете см. выше, он не работает, поэтому ... – theonlygusti
Я клянусь, что есть кто-то, кто действительно меня ненавидит, и просто опускает все мои вопросы. Серьезно, что в этом плохого? – theonlygusti