Вот что работает, используя причудливое ключевое слово dynamic
.Вам нужно будет сослаться на другой класс для прохождения теста или использовать событие сборки для копирования встроенной DLL.
namespace TestLibrary
{
[TestFixture]
public class Tests
{
[Test]
public void FileCheck()
{
dynamic otherClass =
AppDomain.CurrentDomain.CreateInstanceFromAndUnwrap("OtherLibrary.dll",
"Prefix.OtherLibrary.SomeClass");
otherClass.SayHello(); // look, ma! no casting or interfaces!
}
}
}
namespace Prefix.OtherLibrary
{
public class SomeClass
{
public void SayHello()
{
Console.WriteLine("Hello, world.");
}
}
}
В отличие от Activator
, AppDomain.CurrentDomain.CreateInstanceFromAndUnwrap
принимает имя файла в качестве первого аргумента, а не спецификатора типа.Это иногда полезно, особенно когда вас не интересует строгое название сборки.