运维开发网

高级Redis应用进阶课 一站式Redis解决方案

运维开发网 https://www.qedev.com 2021-02-25 08:56 出处:51CTO 作者:mb60197fa41eb9f
download:高级Redis应用进阶课一站式Redis解决方案本课程以一个实战项目为主线,整合Redis各种问题场景,不断改造项目,以问带学。学完本课后,面对Redis相关问题,你将能够快速进行排查与修复,无论实际工作还是跳槽面试你都将游刃有余。适合人群对Redis有兴趣,但不懂如何和项目深度结合的后端工程师了解Redis日常操作,但不懂得Redis底层原理的后端工程师遇到Redis故障完全没

download:高级Redis应用进阶课 一站式Redis解决方案

本课程以一个实战项目为主线,整合Redis各种问题场景,不断改造项目,以问带学。学完本课后,面对Redis相关问题,你将能够快速进行排查与修复,无论实际工作还是跳槽面试你都将游刃有余。

适合人群

对Redis有兴趣,但不懂如何和项目深度结合的后端工程师

了解Redis日常操作,但不懂得Redis底层原理的后端工程师

遇到Redis故障完全没有思路,不知如何解决的后端工程师

技术储备要求

后端web开发基础

public class ObjectIdConverter : JsonConverter

{

public override bool CanConvert(Type objectType)

{

return objectType == typeof(ObjectId);

}

public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)

{

if (reader.TokenType != JsonToken.String)

{

throw new Exception(

String.Format("Unexpected token parsing ObjectId. Expected String, got {0}.",

reader.TokenType));

}

var value = (string)reader.Value;

return String.IsNullOrEmpty(value) ? ObjectId.Empty : new ObjectId(value);

}

public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)

{

if (value is ObjectId)

{

var objectId = (ObjectId)value;

writer.WriteValue(objectId != ObjectId.Empty ? objectId.ToString() : String.Empty);

}

else

{

throw new Exception("Expected ObjectId value.");

}

}

}

在ObjectId字段上加一行代码即可

[JsonConverter(typeof(ObjectIdConverter))]

public string _id { get; set; }

假如运用Newtonsoft的JsonConvert的话,还需求额外加上参数

JsonConvert.DeserializeObject<xxxx>(json,new ObjectIdConverter());

3、经过Ignore,一种很有技巧性的写法

[JsonIgnore]

public override ObjectId _Id { get; set; }

[BsonIgnore]

public string _IdStr

{

get

{

return Id.ToString();

}

set

{

ObjectId id;

ObjectId.TryParse(value, out id);

Id = id;

}

}

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号