Bonjour J'ai un contrat de service et dans son implémentation j'essaie d'écrire les paramètres de la requête qu'il reçoit dans un fichier texte. Ici, un objet composite de 'TypeA a' est passé en paramètre.
namespace WebService
{
// NOTE: If you change the interface name "IRequestStatusChanged" here, you must also update the reference to "IRequestStatusChanged" in App.config.
[ServiceContract]
public interface IRequestStatusChanged
{
[OperationContract]
Input StatusChanged(Input In);
}
[Serializable] [DataContract]
public class Input
{
[DataMember]
RequestStatus RS = new RequestStatus();
}
[Serializable] [DataContract]
public class RequestStatus
{
[DataMember]
RequestToken RT = new RequestToken();
[DataMember]
public String State
}
[Serializable] [DataContract]
public class RequestToken
{
[DataMember]
public string Id;
}
}
Implementation of contract
namespace WebService
{
// NOTE: If you change the class name "RequestStatusChanged" here, you must also update the reference to "RequestStatusChanged" in App.config.
public class RequestStatusChanged : IRequestStatusChanged
{
public Input StatusChanged(Input In)
{
/* IFormatter formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
Stream outfile = new FileStream(@"C:\test.txt", FileMode.Open,FileAccess.Write);
formatter.Serialize(outfile, In);
outfile.Close(); */
XmlSerializer serializer = new XmlSerializer(typeof(Input));
TextWriter TW = new StreamWriter(@"c:\test.xml");
serializer.Serialize(TW, In);
TW.Close();
return In;
}
}
}
Auparavant, j'ai essayé IFORMATTER pour sérialiser l'objet et l'écrire dans un fichier texte, mais il n'est pas lisible par l'homme, alors j'ai essayé la sérialisation xml.
Lorsque je vérifie le fichier XML écrit, il ne contient que des balises pour l'objet "TypeA" et n'écrit pas les objets "TypeB" et "TypeC" dans le fichier. J'ai marqué toutes les classes comme [Serializable] dans le contrat de service. Je souhaite écrire tous les paramètres reçus au format texte ou XML dans un fichier afin qu'ils soient lisibles (une sorte de fichier journal).