Wpis z mikrobloga

Pytanie do Autofac'a albo innych kontenerów ioc. Mam factory method które jest definiowane np:

class ClassA : ISomeInterface
{
public delegate ClassA Factory(string someArg1, int someArg2);
...
}

Problem w tym że Factory musi zwracać ten sam konkretny typ w którym został zaimplementowany (w tym przypadku ClassA)
Chciałbym żeby Factory zwracało ISomeInterface, żeby klasa która przyjmuje to factory w konstruktorze przyjmowała delegat który będzie zwracał interfejs zamiast konkretnej klasy w celu np łatwiejszego testowania (mockowania). Da się to osiągnąć za pomocą wbudowanych mechanizmów autofac'aa (albo czy jest coś analogicznego w innych kontenerach) ?
Wiem, że mogę po prostu stworzyć dodatkową klasę factory z odpowiednim interfejsem która zbuduję i zwróci ISomeInterface, ale zastanawiam się czy wbudowane mechanizmy tego nie wspierają.

#programowanie #dotnet #csharp #
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach