Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# t对不进行序列化的数据进行建模_C#_Oop - Fatal编程技术网

C# t对不进行序列化的数据进行建模

C# t对不进行序列化的数据进行建模,c#,oop,C#,Oop,我能想到的最后一件事是,您可以基于a'b'c'd'e'f'g'h的建议,将该方法移植到一些现有服务上,从而消除类。如果在该服务上有一个实现序列化的泛型方法,则可以消除单独的类,因为不再需要为每个模型对象类型使用单独的方法。无论如何,我不会删除该类。你们所说的是给你们的模型增加一个额外的责任,这显然违背了启发式。也就是说,您有一个类,它当前的职责是建模数据,您将让它负责建模数据,并使用它现在需要了解的各种服务类将其数据转换为某种形式。如果模型类封装了GUI概念,比如为GUI引发事件,那么它就有不同

我能想到的最后一件事是,您可以基于a'b'c'd'e'f'g'h的建议,将该方法移植到一些现有服务上,从而消除类。如果在该服务上有一个实现序列化的泛型方法,则可以消除单独的类,因为不再需要为每个模型对象类型使用单独的方法。

无论如何,我不会删除该类。你们所说的是给你们的模型增加一个额外的责任,这显然违背了启发式。也就是说,您有一个类,它当前的职责是建模数据,您将让它负责建模数据,并使用它现在需要了解的各种服务类将其数据转换为某种形式。如果模型类封装了GUI概念,比如为GUI引发事件,那么它就有不同的更改原因——通知GUI的方案是否更改以及转换为JSON的方案是否更改

如果是我,我会让模型从基类继承,或者像Matt Fenwick提到的那样定义一个接口,让您的ToJson类将一批模型作为输入,处理它们,然后返回结果

我理解消除额外类的愿望,如果它是一个只涉及类的数据元素的简单转换,我可能会提倡它,但一旦您需要某种服务类来执行操作,它似乎不适合模型对象,因为您现在无法在没有JavascriptSerializer的情况下对数据建模。如果您想对未序列化的数据进行建模,那么这会很尴尬


我能想到的最后一件事是,您可以基于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)
  {
  }
}