C# t对不进行序列化的数据进行建模
我能想到的最后一件事是,您可以基于a'b'c'd'e'f'g'h的建议,将该方法移植到一些现有服务上,从而消除类。如果在该服务上有一个实现序列化的泛型方法,则可以消除单独的类,因为不再需要为每个模型对象类型使用单独的方法。无论如何,我不会删除该类。你们所说的是给你们的模型增加一个额外的责任,这显然违背了启发式。也就是说,您有一个类,它当前的职责是建模数据,您将让它负责建模数据,并使用它现在需要了解的各种服务类将其数据转换为某种形式。如果模型类封装了GUI概念,比如为GUI引发事件,那么它就有不同的更改原因——通知GUI的方案是否更改以及转换为JSON的方案是否更改 如果是我,我会让模型从基类继承,或者像Matt Fenwick提到的那样定义一个接口,让您的ToJson类将一批模型作为输入,处理它们,然后返回结果 我理解消除额外类的愿望,如果它是一个只涉及类的数据元素的简单转换,我可能会提倡它,但一旦您需要某种服务类来执行操作,它似乎不适合模型对象,因为您现在无法在没有JavascriptSerializer的情况下对数据建模。如果您想对未序列化的数据进行建模,那么这会很尴尬C# t对不进行序列化的数据进行建模,c#,oop,C#,Oop,我能想到的最后一件事是,您可以基于a'b'c'd'e'f'g'h的建议,将该方法移植到一些现有服务上,从而消除类。如果在该服务上有一个实现序列化的泛型方法,则可以消除单独的类,因为不再需要为每个模型对象类型使用单独的方法。无论如何,我不会删除该类。你们所说的是给你们的模型增加一个额外的责任,这显然违背了启发式。也就是说,您有一个类,它当前的职责是建模数据,您将让它负责建模数据,并使用它现在需要了解的各种服务类将其数据转换为某种形式。如果模型类封装了GUI概念,比如为GUI引发事件,那么它就有不同
我能想到的最后一件事是,您可以基于a'b'c'd'e'f'g'h的建议,将该方法移植到一些现有服务上,从而消除类。如果您在该服务上只有一个实现序列化的通用方法,则可以消除单独的类,因为您不再需要为每个模型对象类型使用单独的方法。是的,这将重写ToJson类;我想知道是否有一种方法可以完全删除这个类;我想知道是否有一种方法可以完全删除这个类。你看过吗?它可以很好地在任意对象图中运行。我希望继续使用本机.net序列化程序,因为我不想添加依赖项。您看过吗?它可以很好地嵌入任意对象图。我希望使用本机.net序列化程序,因为我不想添加依赖项。嗨,我希望使用本机.net json序列化程序。嗨,我希望使用本机.net json序列化程序。
public class MyModel{
public int TheId { get; set; }
public int ....
public string ....
}
public class ToJson{
public string MyModelToJson (List<MyModel> TheListOfMyModel) {
string ListOfMyModelInJson = "";
JavascriptSerializer TheSerializer = new ....
TheSerializer.RegisterConverters(....
ListOfMyModelInJson = TheSerializer.Serialize(TheListOfMyModel);
return ListOfMyModelInJson;
}
public string MyOtherModelToJson (List<MyOtherModel> TheListOfOtherModel) {....}
public string YetAnotherModelToJson (List<YetAnotherModelToJson> TheListOfYetAnotherModelToJson) {....}
}
public class MyModel{
public int TheId { get; set; }
public int ....
public string ....
public string MyModelToJson()
}
public class ToJson<T>{
public string MyModelToJson (List<T> TheListOfMyModel) {
string ListOfMyModelInJson = "";
JavascriptSerializer TheSerializer = new ....
TheSerializer.RegisterConverters(....
ListOfMyModelInJson = TheSerializer.Serialize(TheListOfMyModel);
return ListOfMyModelInJson;
}
}
public class MyModel {
public JsonObject myModelToJson() ... //this method implements the interface!
}
public class ToJson
public JsonArray myModelToJson(List<things that can be json-ized> myList) ...
}
public static class JsonExtensions
{
public static string ToJson<T>(this List<T> list)
{
}
}