Создание класса для интерфейса во время выполнения в C #

Я собираюсь взять набор объектов, скажем, в данный момент существует 3 живых объекта, которые реализуют общий интерфейс, а затем обернуть эти объекты в четвертый объект, также реализуя тот же интерфейс.

Реализации методов и свойств четвертого объекта будут просто вызывать соответствующие биты в этих 3 базовых объектах. Я знаю, что здесь будут случаи, когда это не имеет смысла делать, но это для многоадресной архитектуры службы, так что уже имеется хороший набор ограничений.

У меня вопрос с чего начать. Генерация этого четвертого объекта должна быть сделана в памяти, во время выполнения, так что я думаюReflection.EmitК сожалению, у меня недостаточно опыта, чтобы даже понять, с чего начать.

Нужно ли создавать сборку в памяти? Это, конечно, выглядит так, но я просто хотел бы быстро указать, с чего начать.

По сути, я смотрю на выбор интерфейса и список экземпляров объектов, которые реализуют этот интерфейс, и создают новый объект, а также реализуют этот интерфейс, который должен «многоадресный». все вызовы методов и доступ к свойствам ко всем базовым объектам, по крайней мере, насколько это возможно. Будет множество проблем с исключениями и тому подобное, но я буду решать эти биты, когда доберусь до них.

Это для сервис-ориентированной архитектуры, где я хотел бы иметь существующий код, который использует, в качестве примера, сервис регистратора, чтобы теперь получить доступ к множеству сервисов регистратора, без необходимости изменять код, который использует сервисы. Вместо этого я хотел бы во время выполнения сгенерировать упаковщик службы регистрации, который внутренне просто вызывает соответствующие методы для нескольких базовых объектов.

Это для .NET 3.5 и C #.

Ответы на вопрос(3)

Ваш ответ на вопрос