Tworzenie klasy dla interfejsu w czasie wykonywania w języku C #

Patrzę na zbiór obiektów, powiedzmy, że w tym momencie żyją 3 obiekty, które implementują wspólny interfejs, a następnie owijają te obiekty w czwarty obiekt, również implementując ten sam interfejs.

Implementacje metod i właściwości czwartego obiektu po prostu wywołałyby odpowiednie bity na tych 3 podstawowych obiektach. Wiem, że będą tu przypadki, w których nie ma sensu tego robić, ale dotyczy to architektury multiemisji usług, więc istnieje już dobry zestaw ograniczeń.

Moje pytanie brzmi: od czego zacząć. Generowanie tego czwartego obiektu powinno odbywać się w pamięci, w czasie wykonywania, więc myślęReflection.Emit, niestety, nie mam wystarczająco dużo doświadczenia, żeby wiedzieć, od czego zacząć.

Czy muszę konstruować zespół w pamięci? Na pewno tak wygląda, ale chciałbym tylko szybko wskazać, gdzie powinienem zacząć.

Zasadniczo szukam interfejsu i listy instancji obiektów, które implementują ten interfejs, i konstruuję nowy obiekt, również implementujący ten interfejs, który powinien "rozsyłać grupowo" wszystkie wywołania metod i dostęp do właściwości do wszystkich obiektów bazowych, w jak najmniej. Pojawią się sterty problemów z wyjątkami i tak dalej, ale zajmuję się tymi bitami, kiedy do nich dotrę.

Dotyczy to architektury zorientowanej na usługi, w której chciałbym mieć istniejący kod, który na przykład wymaga usługi rejestratora, aby uzyskać dostęp do wielu usług rejestratora, bez konieczności zmiany kodu korzystającego z usług. Zamiast tego chciałbym uruchomić środowisko generujące wrapper usług logger, który wewnętrznie po prostu wywołuje odpowiednie metody na wielu obiektach bazowych.

To jest dla .NET 3.5 i C #.

questionAnswers(3)

yourAnswerToTheQuestion