Autofac зарегистрируйте компонент, разрешая только одну зависимость вручную ⇐ C#

Место общения программистов C#
Anonymous
Autofac зарегистрируйте компонент, разрешая только одну зависимость вручную

Сообщение Anonymous »

Я думаю, что то, что я хочу, просто невозможно. Но здесь все равно < /p>

Код: Выделить всё

            builder.Register(c =>
{
var userRightsFileFullPath = c.Resolve().UserRightsFileFullPath;

return new UserRightsFile(
c.Resolve(),
c.Resolve(),
c.Resolve(),
userRightsFileFullPath);
}).As();
Я зарегистрирую тип ourerrightsfile , где я только «пропускаю» местоположение файла. Вот что я разбиваю вручную. Но в результате «вручную» новинка экземпляра типа; Теперь я также вынужден вручную разрешить вещи, которые уже находятся в контейнере (Crypto, Hashing, файловая система). < /p>
В автомобиле я могу сделать что -то вроде < /p>
var autoMock = AutoMock.GetStrict();
var sut = autoMock.Create(new NamedParameter(...));
< /code>
Так что я надеялся (но, опять же, может быть, просто невозможно) - это что -то вроде < /p>
builder.Register(c =>
{
var userRightsFileFullPath = c.Resolve().UserRightsFileFullPath;

// c.Create doesn't exist obviously, is this wishful thinking? :)
return c.Create(new NamedParameter("userRightsFile", userRightsFileFullPath));
}).As();
< /code>
, в результате чего мне нужно только предоставить одну вещь, которую мне не хватает, и позволить Autofac справиться с инъекционными зависимостями, уже зарегистрированными в контейнере. этот конкретный случай)
[*] Если возможно, это уже возможно, где я должен смотреть

Большое спасибо!

Подробнее здесь: https://stackoverflow.com/questions/796 ... y-manually

Вернуться в «C#»