Мне нужно сериализовать объект Com, используя .net, используя C# или Delphi .Net это возможно?Как сериализовать COM-объект в .Net?
ответ
Возможно, вы можете сделать это, обернув COM-объект в (сериализуемый) класс .NET, выставив поля, которые вы хотите сериализовать.
Вы можете получить Управляемый Object
по GetObjectForIUnknown Метод. И тогда вы можете сериализовать этот управляемый объект.
Проверьте, есть ли у вас COM-объект IPersistStream, IPersistMemory или любые другие варианты IPersist - что было бы лучше всего.
Объект Com не реализует какой-либо вариант IPersistent. – RRUZ
Я не уверен, что будет разница в том, как вы сериализуете свои данные на C++, .Net или на любом другом языке. COM-объект похож на класс и может быть сериализован путем получения каждого элемента данных и его сериализации. Мне понравилось это на C++.
Я думаю, что это должно быть одинаково в .Net, если для этого не существует конкретных API.
Не просто путем передачи объекта в сериализатор - реализовать интерфейс ISerializable на оболочке COM-объекта (первичная сборка interop также является оберткой) и определить вашу собственную сериализацию.
Несомненно, у кого-то есть образцы кода? –
@Robert: почему бы и какие-нибудь образцы кода? Этот вопрос вообще не имеет никакого смысла. Означает ли объект COM что-либо о XML? Знает ли он, как сериализовать себя? Возможно ли создать экземпляр объекта с параметрами по умолчанию, а затем установить все свойства (как вам нужно было бы при десериализации)? –