Val*_*Val 2 servicestack servicestack-text
尝试从序列化期间排除模型中的属性.
我使用以下语法:
JsConfig<MyTestClass>.ExcludePropertyNames = new[] { "ShortDescription" };
就在那之后,我有以下内容:
            return     (from o in __someProvider.GetAll() select (new
                      {
                          o.Name,
                          o.ShortDescription
                          o.InsertDate
                      }).TranslateTo<MyTestClass>()).ToList()
但是,一旦从方法返回结果,它仍然包含Json中的"ShortDescription"字段.难道我做错了什么?
JsConfig<T>.ExcludePropertyNames似乎只为每种类型检查一次,在静态构造函数中TypeConfig<T>.因此,如果您ExcludePropertyNames在服务类中进行配置,就在返回响应之前,可能为时已晚 - 可能已经设置并缓存了TypeConfig属性MyTestClass.我能够重现这一点.
更可靠的替代方法是将所有JsConfig<T>配置移至AppHost设置代码.
如果您确实需要在服务类中执行此操作,例如,如果您只是有条件地排除属性名称,那么另一种方法是确保JsConfig.IncludeNullValues错误(我相信它是默认情况下)并且在您的服务代码中设置ShortDescription为null在适当的时候.
| 归档时间: | 
 | 
| 查看次数: | 386 次 | 
| 最近记录: |