【发布时间】:2015-12-30 11:01:58
【问题描述】:
除了一行之外,我有一些相同的方法(我在对象客户端上调用不同的方法)。 我会有更多这样的方法。
除了使用 Reflection 之外,还有其他解决方案吗?
private void initClerks(Client client)
{
string[] pks = client.ClerksPKS.Trim(','). Split(',');
foreach (string pk in pks)
{
string data = JObject.Parse(DBUtils.GetData(Constants.DBProcedures.GetProcedures.GetWorkerDetailsByPkid, pk))[Constants.ResponseJson.Data].ToString();
client.addClerk(JsonConvert.DeserializeObject<Clerk[]>(data)[0]);
}
}
private void initManagers(Client client)
{
string[] pks = client.ManagerPK.Trim(',').Split(',');
foreach (string pk in pks)
{
string data = JObject.Parse(DBUtils.GetData(Constants.DBProcedures.GetProcedures.GetWorkerDetailsByPkid, pk))[Constants.ResponseJson.Data].ToString();
client.addManager(JsonConvert.DeserializeObject<Manager[]>(data)[0]);
}
}
【问题讨论】:
-
你解析JSON字符串,然后再转回字符串,然后反序列化...
-
"除了一行之外是相同的(我在对象客户端上调用不同的方法)" - 我计算了三个差异 -
pks是如何初始化的,是的,client方法,还有DeserializeObject的类型参数。 -
嗯,对我来说,这似乎更像是解决另一个问题的方法,即存储主键(pks?)和获取数据的方式。您也许可以增强这些以更好地控制初始化过程。