我有一些除了一行(我称对象客户端上的不同方法)相同的方法。 我会有更多这样的方法。使用相同的代码,但内部不同的方法的重构方法
除了使用反射之外,是否有解决方案?
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?)并获取数据的方式。你也许可以增强这些以更好地控制初始化过程。 –