J'ai un objet, appelons-le UnSerializableObject, que je ne peux pas modifier et que j'ai besoin de sérialiser. J'ai donc créé mon propre objet appelé SerializableObject qui est sérialisable et contient toutes les mêmes données que l'objet original. qui ressemble à quelque chose comme ceci:Disparité de type de sérialisation WCF
namespace test
[Serializable]
class SerializableObject
{
private int item1;
public int Item1
{
get;
set;
}
public SerializableObject()
{}
}
Ensuite, je créé une autre classe qui convertit et d'un SerializableObject et un UnSerializableObject. du côté du service tout fonctionne bien. La méthode dans le service prend un SerializableObject en tant que paramètre et je le convertis en UnSerializableObject. Le problème est du côté du client. J'ai utilisé svcutil pour créer le code client. Ensuite, je prends un objet le convertir en SerializableObject et j'utilise SerializableObject dans l'appel de service. Comme ceci:
TTSServiceClient aClient = new TTSServiceClient();
UnSerializableObject loMMessage = new MostMessage();
SerializableObject loSMMessage = ObjectConverter.ToSerializableObject(loMMessage);
aClient.Allocate_OnStartResultAck(loSMMessage);
Quand je compilez le client je reçois l'erreur:
Erreur 59 Argument '1': ne peut pas convertir « test.Utilities.SerializableObject [c: \ Projects \ Client \ Client \ test.Utilities.dll] » à 'test.Utilities.SerializableObject [C: \ Projects \ client \ client \ Service.cs (19)]'
static Class ObjectConverter
{
static public SerializableObject ToSerializableObject(UnSerializableObject usObject)
{
SerializableObject sObject = new SerializableObject();
sObject.Item1 = usObject.Item1;
return sObject;
}
}
pourquoi est-ce qui se passe? et comment puis-je le réparer? Y a-t-il une meilleure façon de gérer cela?
Pouvez-vous publier le prototype de la méthode ObjectConverter.ToSerializableObject? –
Je l'ai ajouté. il y a beaucoup plus de propriétés mais c'est fondamentalement ça. – scott