从ToString方法序列化类



我正在使用JSon.Net序列化ViewModel:

public class ViewModel {
   public Int32 Id { get; set; }
   // other properties
}
public static class ViewModelExtensions {
  public static IHtmlString ToJson(this ViewModel model) {
    JsonSerializerSettings settings = new JsonSerializerSettings {
      ContractResolver = new CamelCasePropertyNamesContractResolver()
    };
    return MvcHtmlString.Create(JsonConvert.SerializeObject(model, settings));
  } // ToJson
} // ViewModelExtensions

我可以在ViewModel类中添加一个ToString方法来序列化类本身,而不是使用扩展模型吗?

我该怎么做?什么是最好的选择?

默认的ToString是一个虚拟函数,因此您应该能够通过执行以下操作来覆盖它:

override public string ToString() {
    return [Your format logic here];
}

我想这就是你要做的。

根据收到的评论,我刚刚结束了以下内容:

public class ViewModel {
  public IHtmlString ToJson() {
    return ToJson(new CamelCasePropertyNamesContractResolver());
  } // ToJson
  public IHtmlString ToJson(IContractResolver resolver) {
    JsonSerializerSettings settings = new JsonSerializerSettings {
      ContractResolver = resolver 
    };
    return MvcHtmlString.Create(JsonConvert.SerializeObject(this, settings));
  } // ToJson
} // ViewModel 

最新更新