0
我比較了兩個不同類型的屬性名稱不同的對象。所以例如我有foo.Surname,我想比較bar.Lastname。Kellerman比較.NET對象:使用不同屬性名稱比較不同類型的對象
有沒有什麼辦法可以創建一個映射(比如說在ComparisonConfig中),以便我可以告訴比較器這兩個屬性是相同的東西?
我可以將有問題的屬性添加到忽略列表中,然後對該屬性進行手動比較,但似乎更容易創建映射。
我比較了兩個不同類型的屬性名稱不同的對象。所以例如我有foo.Surname,我想比較bar.Lastname。Kellerman比較.NET對象:使用不同屬性名稱比較不同類型的對象
有沒有什麼辦法可以創建一個映射(比如說在ComparisonConfig中),以便我可以告訴比較器這兩個屬性是相同的東西?
我可以將有問題的屬性添加到忽略列表中,然後對該屬性進行手動比較,但似乎更容易創建映射。
排序,我不確定這是否適用於您要求的內容。如果你的foo和酒吧兩個類共享的密鑰,這會工作:
var spec0 = new Dictionary<Type, IEnumerable<string>>();
spec0.Add(typeof(ChildType), new string[] { "ChildKeyName" });
spec0.Add(typeof(ParentType), new string[] { "ParentKeyName"});
List<Type> spec1 = new List<Type>();
spec1.Add(typeof(ParentType));
spec1.Add(typeof(ChildType));
CompareLogic.Config.IgnoreCollectionOrder = true;
CompareLogic.Config.ClassTypesToInclude = spec1;
CompareLogic.Config.CollectionMatchingSpec = spec0;
basicComparison.Config.MaxDifferences = int.MaxValue;
ComparisonResult = basicComparison.Compare(NewObject, OldObject);
我想automapper可能會允許這樣的:http://automapper.org/ – user1666620
這實際上automapper讓我第一想到這一點,地方,它完全符合我想要的語法,但據我所知,您不能使用automapper來比較對象的內容,它只允許您在對象之間複製內容(並檢查映射是否有效) ? – tomRedox
Defo爲自動映射器的作業,創建第三種類型的映射,你有兩種類型的新類型,然後比較這些? – bUKaneer