2009-07-06 10 views
0

J'ai besoin de sérialiser un objet Com en utilisant .net en utilisant C# ou Delphi .Net est-ce possible?Comment sérialiser un objet COM dans .Net?

+0

Sûrement quelqu'un a des échantillons de code? –

+0

@Robert: pourquoi y aurait-il des échantillons de code? Cette question n'a même pas de sens, en général. L'objet COM sait-il quelque chose au sujet de XML? Est-ce qu'il sait comment se sérialiser? Est-il même possible de créer une instance de l'objet avec des paramètres par défaut, puis de définir toutes les propriétés (comme vous le feriez lors de la désérialisation)? –

Répondre

2

Vous pouvez probablement le faire en enveloppant l'objet COM dans une classe .NET (sérialisable), exposant les champs que vous souhaitez sérialisé.

1

Vous pouvez obtenir une méthode gérée Object à GetObjectForIUnknown. Et puis, vous pouvez sérialiser cet objet géré.

4

Vérifiez si votre objet COM implémente IPersistStream, IPersistMemory ou toute autre variante IPersist - ce serait votre meilleure option.

+0

L'objet Com n'implémente aucune variante IPersistent. – RRUZ

0

Je ne suis pas sûr qu'il y aura une différence dans la façon de sérialiser vos données en C++, .Net ou dans tout autre langage. L'objet COM est comme une classe et peut être sérialisé en obtenant chaque membre de données et en le sérialisant. C'est ce que j'ai fait en C++.

Je pense que cela devrait être le même dans .Net, sauf s'il existe des API spécifiques pour le faire.

0

Non simplement en passant l'objet au sérialiseur: implémentez l'interface ISerializable sur l'encapsuleur d'objet COM (l'assembly d'interopérabilité primaire est également un wrapper) et définissez votre propre sérialisation.

Questions connexes