Sto lavorando su un'app server-client in c # e devo inviare un oggetto dal client al server tramite WCF. Per semplicità lo chiamerò WorkingClass in quanto è ciò che fa il lavoro.
public class WorkingClass
{
public WorkingClass (FileInfo uncompressedFile, FileInfo compressedFile)
{
UncompressedFile = uncompressedFile;
CompressedFile = compressedFile;
}
public FileInfo UncompressedFile { get; private set; }
public FileInfo CompressedFile { get; private set; }
public void ZipFile()
{
//zip file
}
}
Ora devo inviarlo al server tramite WCF. Non ho bisogno di tutte le proprietà di WorkInfo FileInfo serializzate e inviate, quindi ho una classe semplice che chiamerò MessageClass con stringhe semplici.
public class MessageClass
{
public MessageClass(string uncompressedFileName, string compressedFileName)
{
UncompressedFileName = uncompressedFileName;
CompressedFileName = compressedFileName;
}
public string UncompressedFileName { get; private set; }
public string CompressedFileName { get; private set; }
}
Posso aggiungere un metodo di istanza ToMessage () e un metodo statico FromMessage a WorkingClass. O invece del metodo statico FromMessage, potrei aggiungere un costruttore alla WorkingClass che accetta un MessageClass come parametro. Per me queste opzioni sembrano legare strettamente entrambe le classi e la WorkingClass dovrebbe solo preoccuparsi di zippare un file, non di convertirsi per la comunicazione tramite WCF. Creo forse una classe di convertitore?
Il server dovrà quindi convertire dal messaggio alla propria classe di lavoro.
Sono sulla buona strada per gestire questo genere di cose? C'è una buona pratica o un modello di progettazione che posso seguire?