Я должен разработать шлюз, который извлекает данные из BA CNet, сохраняет их в списки и затем предоставляет эти данные через службу wcf (soap). Я должен использовать SOAP и CIM для доставки / предоставления внутрисетевых данных для внешнего мира.
В настоящее время у меня есть эти классы:
Gateway.cs, который обрабатывает чтение файла конфигурации .tsv (который описывает, какие устройства ba cnet должны быть найдены в сети, сохранены в списках) и запускает поток для BA CNet. У класса также есть метод, который я хотел бы вызвать из службы wcf, с параметром ID, чтобы он связывал вызов метода GetBACNetValue с классом BA CNet.
BA CNet .cs, который обрабатывает все связанные с BA CNet вещи и запрашивает локальную сеть BA CNet. Постоянно запрашивает значения из сети и сохраняет их в списки.
Классы обслуживания, связанные с WCF, и некоторые другие, которые я сделал, пытаясь решить эту проблему с помощью обучающих видео.
Так что, когда кто-то вводит URL для доступа к моей службе и дает правильный идентификатор в URL, моя служба возвращает правильные данные. Дело в том, что в первый раз я попытался сделать свои шлюзы и ба cnet классы стати c для прямого доступа к их методам. Друг сказал мне, что это не будет работать, так как «статика не будет переносить данные». Теперь, когда они созданы, я не знаю, как получить доступ к их экземплярам из служебного файла.
Было бы неплохо просто реализовать это следующим образом (в (веб-файле) служебном файле):
(открытая служба)
int GetBACNetObjectValue(int id) {
return Gateway.GetBACNetObjectValue(int id);
}
, которая в свою очередь реализована в Gateway:
int GetBACNetObjectValue(int id) {
int result;
for (int i = 0; i < BACNet.objectIDs.Count; ++i) {
if (BACNet.objectIDs[i] == id) result = BACNet.objectValues[i];
}
return result;
}
Спасибо за помощь.