Usare l'explicit operator per eseguire codice di mapping in C#

di Stefano Mostarda, in .NET Framework,

Il mapping di un oggetto in un altro è un'operazione che nella maggior parte dei casi è estremamente semplice. Tutto quello che dobbiamo fare è copiare il valore di una serie di proprietà dall'oggetto A all'oggetto B. Tuttavia quest'operazione può diventare tediosa e soggetta ad errori quando le proprietà sono tante o ne aggiungiamo di nuove. Per questo motivo sono stati create librerie come Automapper che svolgono gran parte del lavoro per noi.
Tuttavia quando ci troviamo in situazioni semplici, un semplice metodo di mapping che copia le proprietà una ad una è più che sufficiente. Ci sono diverse tecniche per realizzare il mapping: extension method, factory method, costruttori e così via. In questo script proponiamo un metodo alternativo: l'utilizzo dell'operatore explicit. Tramite questo, ci basta usare l'operatore di casting per mappare un oggetto in un altro oggetto come mostra il seguente codice.

class Source
{
    public int Id { get; set; }
    public string PropA { get; set; }
    public string ProbB { get; set; }
    public string ProbC { get; set; }

}

class Target
{
    public int Id { get; set; }
    public string PropA { get; set; }

    public static explicit operator Target(Source s)
    {
        return new Target
        {
            Id = s.Id,
            PropA = s.PropA
        };
    }
}

var s = new Source();
s.PropA = "A";
s.PropB = "B";
s.PropC = "C";
var t = (Target)s;

Come si vede da questo esempio, usando l'operatore explicit possiamo usare un semplice cast per il mapping tra oggetti. Questa tecnica non è ne migliore ne peggiore rispetto ad altre, è solo una delle armi a nostra disposizione.

Commenti

Visualizza/aggiungi commenti

| Condividi su: LinkedIn, Facebook

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

Nessuna risorsa collegata

I più letti di oggi