当我序列化某些类型的对象时,我希望在JSON中有一个类型名称的属性.我写了一个转换器:
public class TypeInfoConverter : JsonConverter {
private readonly IEnumerable<Type> _types;
public TypeInfoConverter(IEnumerable<Type> types) {
Contract.Requires(types != null);
_types = types;
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) {
var jObject = JObject.FromObject(value, serializer);
jObject.AddFirst(new JProperty("Type", value.GetType().Name));
jObject.WriteTo(writer);
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) {
return serializer.Deserialize(reader, objectType);
}
public override bool CanConvert(Type objectType) {
return _types.Any(t => t.IsAssignableFrom(objectType));
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试序列化对象时,我在这里有一个无限递归:
var jObject = JObject.FromObject(value, serializer);
很明显,因为我使用了与该转换器配置的JsonSerializer相同的实例.
如何防止使用此转换器,但我想使用为此序列化器配置的其他转换器?
我要序列化的类型:
public …
Run Code Online (Sandbox Code Playgroud) 我有一个带有属性Content的Model,其中包含HTML字符串.
var model = new { Content = ... }
Razor.Parse(templateBody, model)
Run Code Online (Sandbox Code Playgroud)
如何使用独立Razor渲染此字符串.
我试过了:
@(new HtmlString(Model.Content))
Run Code Online (Sandbox Code Playgroud)
并且
@(HttpUtility.HtmlDecode(Model.Content))
Run Code Online (Sandbox Code Playgroud)
Model.Content渲染始终是HTML转义的.
我正在尝试在将数据写入主副本之后从同步辅助副本中读取数据.但我的数据不存在于二级.
在辅助数据上出现数据之前,存在大约100-500ms的延迟.
是否可以使辅助副本与读取查询真正同步?