我正在编写一堆以下类型的类,它对我来说似乎有点臭。基本上我想根据属性的一些json配置进行反序列化,并将其序列化以进行存储。我认为以下方法可以很好地工作,因为我不想规定序列化/反序列化必须是json等。
对于一个简单的对象,代码如下所示:
public class IntegerDatasourceInstanceOptions
{
public int Start { get; set; }
public int Count { get; set; }
public IntegerDatasourceInstanceOptions()
{
}
public IntegerDatasourceInstanceOptions(string config)
{
var options = JsonConvert.DeserializeObject<IntegerDatasourceInstanceOptions>(config);
if (options != null)
{
Start = options.Start;
Count = options.Count;
}
}
public override string ToString()
{
return JsonConvert.SerializeObject(this);
}
}
我想我只是在寻找一些关于这是否是最佳方式的反馈。
答案 0 :(得分:2)
我倾向于在这样的实例中使用静态方法,例如:
public class IntegerDatasourceInstanceOptions
{
public int Start { get; set; }
public int Count { get; set; }
public IntegerDatasourceInstanceOptions()
{
}
public override string ToString()
{
return JsonConvert.SerializeObject(this);
}
public static IntegerDatasourceInstanceOptions Create(string config)
{
return JsonConvert.DeserializeObject<IntegerDatasourceInstanceOptions>(config);
}
}
然后你可以这样做:
var options = IntegerDatasourceInstanceOptions.Create("{...}");