Используйте отражение для вызова методов в сборке, содержащей производный класс базового класса, который находится в друC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Используйте отражение для вызова методов в сборке, содержащей производный класс базового класса, который находится в дру

Сообщение Anonymous »

У меня есть два проекта/сборки в решении .NET Core.
  • Проект A содержит базовый класс FooBase
    Проект B содержит производный класс под названием FooDerived, а также множество других классов, к которым я хочу получить доступ через отражение
Я написал код в FooDerived в проекте B, чтобы при выполнении определенного вызова он использовал отражение для поиска определенного класса, находил метод внутри этого класса, а затем вызывал этот метод. Это просто и прекрасно работает.
Но СЕЙЧАС я хочу реорганизовать этот код в базовый класс в проекте A... при этом все еще используя отражение для поиска материала в проекте B. p>
Проект B ДОЛЖЕН ссылаться на проект A, поскольку FooDerived должен знать, как наследовать от FooBase. Таким образом, проект A не может ссылаться на проект B, что приводит меня к вопросу: как я могу ссылаться на типы и методы, используя отражение в проекте, на который у меня нет ссылки?
Если говорить конкретно, вот некоторый упрощенный код, который у меня сейчас есть внутри FooDerived в проекте B, и который работает правильно:

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

var type = Type.GetType("MyNamespace.MyClassName");

if (type == null)
throw new Exception();

var methodInfo = type.GetMethod("MyMethod", BindingFlags.Public | BindingFlags.Static);

if (methodInfo == null)
throw new Exception();

methodInfo.Invoke(null, null);

Итак, подводя итог вопросу в контексте моего кода: когда я переношу этот код в Проект А, он, очевидно, больше не сможет найти типы и методы в Проекте Б, поскольку они не не существует в проекте A, и не существует ссылки из проекта A на проект B.
Есть ли какой-нибудь способ указать моему базовому классу отразиться в проекте, в котором находится производный класс?< /п>

Подробнее здесь: https://stackoverflow.com/questions/793 ... d-class-fr
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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