У меня есть приложение.VB.NET Управлять событием от одного класса в другом, если они не знают друг друга ...?
Module1 - Основное применение
DataAccessMananger - класс в главном приложении для обработки данных
Конфигурации - класс в другом проекте (общий DLL), которая обрабатывает параметры конфигурации.
Проблема/вопрос. Как класс Configuration обрабатывает событие с изменениями данных в DataAccessManager, не зная, что такое DataAccessManager, поскольку они находятся в разных классах?
Единственный способ, с помощью которого я могу заставить его работать, состоит в том, чтобы модуль 1 обрабатывал событие из DataAccessManager и вызывал его метод в классе Configuration, однако мне не нравится это, я бы предпочел, чтобы конфигурация могла обрабатывать его собственные обновления данных ...
Очистить как грязь? Есть идеи? VB.NET 4.5, и я немного знаю о делегатах, но не знаю, как я могу их использовать здесь, они должны быть ответом, как ...
В идеале, я хотел бы иметь возможность передать «Событие» "в класс конфигурации из класса DAM с помощью модуля ...
Пожалуйста, проверьте это [URL] (http://stackoverflow.com/help), будет полезно повысить качество вашего контента. –
Технически, когда object1 обрабатывает событие объекта2, на самом деле происходит то, что создается делегат это относится к методу в объекте1 и что делегат передается объекту2, который хранит его в коллекции. Object2, создающий событие, фактически состоит из того, что он проходит через эту коллекцию делегатов и вызывает их. Таким образом, вполне возможно, что ваши два класса ничего не знают друг о друге, и один из них по-прежнему обрабатывает событие другого, если существует какой-то другой тип, который знает обо всех них и способен создавать и передавать делегировать. – jmcilhinney
Я уверен, что вы не можете этого сделать, если не можете изменить и скомпилировать новую версию Common.dll. Оттуда вы можете создавать методы, которые позволят вам динамически добавлять прослушиватели событий. Боюсь, вы застряли в том, что ваш модуль подписался на это событие и вызвал метод в классе Config. –