我已经定义了一个类,我需要存储该类的一些对象以供将来参考。我可以将这些对象存储到我创建的azure数据库中吗?
答案 0 :(得分:-1)
为了将对象(类的实例)保存到任何介质(SQL Server,Azure SQL数据库,Azure表存储,Blob存储,本地文件系统,无论您提出什么),您需要{{ 3}}。然后将序列化结果存储到您选择的介质中。接下来,当您想要使用对象的持久状态时,您必须对其进行反序列化。
有不同的序列化格式化程序,如XML,JSON,Binary等。使用哪种格式化程序取决于您要在何处以及如何存储对象。然而,最重要的是,为了序列化一个对象,定义的类应该用serialize it标记。当你想序列化作为第三方API的一部分的对象时,戏剧就开始了。
如果是您的类型 - 只需将其标记为Serializbale,序列化并存储它。非常直接的过程。
如果您无权访问源代码以明确将类标记为Serializable,则可以使用SerializableAttribute来序列化您的对象。但是,反序列化时可能会遇到问题。例如,如果您使用的API类没有公共构造函数。或者,如果它没有为某些属性等提供setter等。最后,如果Type不是可序列化的,并且是第三方API的一部分,可能有很多原因序列化/反序列化可能会失败。
最后,您可以尝试使用Json.NET序列化程序(Serialization Surrogate):
var someObj = new DummyClass
{
ID = Guid.NewGuid(),
IntID = 102934,
Name = "My Super Hero Name"
};
string json = JsonConvert.SerializeObject(someObj);
Console.WriteLine(json);
var otherObj = JsonConvert.DeserializeObject<DummyClass>(json);
Console.WriteLine(otherObj.ID);
Console.ReadKey();
并检查它是否正确序列化/反序列化您的对象。如果一切正常 - 使用json字符串将其保存到您选择的数据库中。