我可以将用户定义的数据类型存储到Azure数据库中吗?

时间:2014-09-28 09:22:49

标签: c# database azure

我已经定义了一个类,我需要存储该类的一些对象以供将来参考。我可以将这些对象存储到我创建的azure数据库中吗?

1 个答案:

答案 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字符串将其保存到您选择的数据库中。

相关问题