Я работаю над проектом Windows Form Control для импорта в стороннее клиентское программное обеспечение с использованием их поставляемого SDK. Пользовательский контроль, написанный еще одной компанией, которую я пытаюсь загрузить, должен выходить на сервер перед отображением информации, которая может занять 20-30 секунд. Чтобы ускорить работу, у меня возникла идея предварительно загрузить информацию, необходимую элементу управления, в текстовый файл. Поскольку он не является известным типом, он бросает ошибки при попытке сериализации класса.Проблемы с предварительной загрузкой объектов в текстовый файл для более быстрого времени загрузки
У меня есть словарь, который я использую для ссылки на соответствующий класс ICamera. Если я изменил «кулачок» с типа ICamera на строку, например «cam.GetLiveURL()». Он записывает текстовый файл без проблем. Это код, который я использую для заполнения Словаря.
foreach (ICamera cam in _adapter.Cameras())
{
OCCamera.Add(cam.GetDisplayName(), cam);
}
Я пробовал XMLSerializer, и, похоже, у него есть трудности с использованием Словаря.
Я попытался BinaryFormatter и получаю ошибку:
Type 'OCAdapter.OCCamera' in Assembly 'OCAdapter.dll' in not marked as serializable.
Я попытался DataContractSerializer и получаю ошибку:
Type 'OCAdapter.OCCamera' with data contract name 'OCCamera: http://schemas.datacontract.org/2004/07/OCAdapter ' is not expected. Consider using a DataContractResolver or add ant types not known statically to the list of known types - for example, by using the KnownTypeAttribute attribute or by adding the to the list of known types passed to DataContractSerializer.
Я пытался играть вокруг с DataContractResolver и не могу показаться, чтобы получить это работать, я этого совсем не понимаю.
Код, который я использую для BinaryFormatter и DataContractSerializer, находится прямо из MSDN или в другом месте и отлично работает без специального типа.
Возможно, есть лучший способ справиться со всем этим, и мне не хватает его. Я не против перетаскивания маршрута словаря для чего-то другого, или я могу переписать любое количество другого кода для выполнения этой работы.
«знак на сервер» является довольно расплывчатым заявлением. Является ли это службой HTTP REST? Можете ли вы дать нам образец ответа от этого «сервера»? –
Это сетевой видеомагнитофон, NVR. Он записывает потоки с камер безопасности.Мне жаль, что я не знаю, как лучше ответить на вопрос. – TonySchoborg