簡體   English   中英

c# - 將一種對象類型轉換為另一種對象類型的通用自定義方法

[英]Generic custom method to convert one object type to another in c#

我正在嘗試實現一種通用方法,將一個對象轉換為 C# 中的另一個對象。

這是我試過的一些代碼

 public interface IDTOMapper<TSource, TDestination>
        {
            TDestination Convert(TSource source_object);
        }


    public class DtoMapper<TSource, TDestination> : IDTOMapper<TSource, TDestination>
        {
            public TDestination Convert(TSource source_object)
            {
           // How to write the code to convert one class object to another

            }
        }

我在 convert 方法中使用的代碼有很多錯誤。誰能告訴我如何使用任何類類型對象來實現。 我發現的一些示例具有特定的類對象轉換。

當我谷歌我發現有auto-mapper library我不想使用auto-mapper library 只想寫自定義泛型方法

部分參考

將一個對象映射到另一個對象的最佳實踐

https://softwareengineering.stackexchange.com/questions/301580/best-practices-regarding-type-mapping-and-extension-methods

映射不同類型對象的通用方法

https://www.codeproject.com/Tips/781202/Csharp-Custom-Mapper

您說您不想使用自動映射器,但是您嘗試編寫的內容是相同的。 您只需重新發明輪子並編寫自己的自動映射器。

我強烈建議使用像 AutoMapper 這樣的現有庫。 它會更快,錯誤更少。

如果不是這樣,那么我自己會避免嘗試自動執行此任務。 對於每個 ViewModel 類,添加一個方法CopyFromBusiness並自己手動編寫復制代碼。 是的,這是相當重復的,但是編寫自己的自動映射器的工作量幾乎一樣多,結果總是比現有的庫更差。 手動編寫的CopyFromBusiness方法將是最快的選擇(在運行時),將來代碼將更容易維護,因為不會有任何隱藏的魔法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM