Пример программы консоли.
class Program
{
static void Main(string[] args)
{
// ... code to build dll ... not written yet ...
Assembly assembly = Assembly.LoadFile(@"C:\dyn.dll");
// don't know what or how to cast here
// looking for a better way to do next 3 lines
IRunnable r = assembly.CreateInstance("TestRunner");
if (r == null) throw new Exception("broke");
r.Run();
}
}
Я хочу динамически строить сборку (DLL), а затем загружать сборку, создавать экземпляр класса и вызывать метод Run() этого класса. Должен ли я попробовать что-то отличить класс TestRunner? Не знаете, как типы в одной сборке (динамическом коде) будут знать о моих типах в моем (статическое приложение сборки/оболочки). Лучше просто использовать несколько строк кода отражения, чтобы вызвать Run() только на одном объекте? Как выглядит этот код?
UPDATE: Уильям Эдмондсон - см. Комментарий