我有一个第 3 方应用程序,它提供一个具有许多“属性”的对象,这些属性只是(字符串)键和值对。值类型可以是字符串、DateTime、Int32 或 Int64。
我需要以一种方便的方式创建自己的类来表示这个对象。我正在创建一个向客户端提供此对象的 WCF 服务,因此我需要它非常简单和干净。
属性的键将作为 Enum 呈现给客户端(以隐藏 3rd 方应用程序的特定键字符串的信息)。但是,我不确定如何表示这些值。以下是一些选项:
选项 1:每个属性值有不同的集合,看起来很难看,但对客户来说很容易使用
public class MyObject
{
public Dictionary<MyTextAttributeKeysEnum, string> TextAttributes { get; set; }
public Dictionary<MyDateAttributeKeysEnum, DateTime> DateAttributes { get; set; }
public Dictionary<MyNumAttributeKeysEnum, long> NumericAttributes { get; set; }
public string Name { get; set; }
public string Id{ get; set; }
选项 2:将所有属性转换为字符串
public class MyObject
{
public Dictionary<MyAttributeKeysEnum, string> MyAttributes { get; set; }
public string Name { get; set; }
public string Id{ get; set; }
选项 3:将它们保留为对象,让客户费心进行转换和转换
public class MyObject
{
public Dictionary<MyAttributeKeysEnum, object> MyAttributes { get; set; }
public string Name { get; set; }
public string Id{ get; set; }