Внедрение _Assembly в Service AutoFa c. NET 4.7 - PullRequest
0 голосов
/ 03 августа 2020

У меня был вспомогательный класс stati c, который вызывал:

Assembly.GetManifestResourceStream(manifestResource);

При написании модульных тестов для этого я изменил его на службу и вставил интерфейс Assembly в:

 private readonly _Assembly _assembly;

 public Service( _Assembly assembly)
 {
    _assembly = assembly;
 }

Это было сделано, чтобы я мог правильно имитировать GetManifestResourceStream

private readonly Mock<_Assembly> _mockAssembly;

var stream = new MemoryStream(new byte[32]);
_mockAssembly.Setup(x => x.GetManifestResourceStream(It.IsAny<string>())).Returns(stream);

Это работает, но теперь у меня возникают проблемы с AutoFa c, регистрирующим _Assembly и получением ошибки :

"nCannot разрешить параметр 'System.Runtime.InteropServices._Assembly assembly' конструктора 'Void"

Это имеет смысл, но я надеюсь найти способ обойти это, правильно ли ввести _Assembly, как я? следует ли мне превратить класс GetManifestResourceStream обратно в вспомогательный файл stati c - если да, то как я могу go насчет имитации модуля GetManifestResourceStream.

Спасибо

...