如何将字典翻译成域对象?

时间:2015-03-16 16:19:53

标签: dictionary dns mapping automapper

我有一个第三方存储库(让我们称之为ExternalRepository),当查询特定的对象时,我会将属性字典作为键值对返回。该字典可能包含30-100个键/值对,具体取决于对象。

我的应用程序需要访问此ExternalRepository,而不是直接依赖它,我引入了另一个层(让我们称之为MyRepository),它将调用ExternalRepository并将字典转换为Typed Domain对象(每个键/值对成为一个属性)在我的域poco中,我的应用程序可以理解和使用它。

考虑到这个设计,我想知道是否有任何关于如何执行此翻译的好方法。正在编写一个包含所有键/值对作为属性的域对象,并将字典翻译成域对象我唯一的选择吗?这是我的设计现在的样本。

  class ExternalRepository{
    Dictionary<string, Object> GetObjectA();
}

class MyRepository{
    A GetObjectA(){
        var dict = _externalRepository.GetObjectA();
        return MapToA(dict);
    }

    A MapToA(Dictionary<string, object> dict){
     //Use something like a Automapper to map
    }
}

class A{
    public string Prop1;
    public object Prop2;
}

在我的实际案例中,至少有30个不同的对象,例如A,其中有许多不同的属性。为每一个写一个域poco并翻译它对我来说听起来有点乏味。我已经阅读了一些关于使用动态对象(或Expando对象)的内容,但我有点担心将它们用作我的域对象。你们能想到其他任何方法来解决这个问题吗?

由于 凯

0 个答案:

没有答案