如何设计一个可以使用类属性/方法存储和检索数据的类

时间:2019-01-04 10:38:53

标签: c#

我想在下面做类似的事情,通过类属性或方法,我应该能够存储和检索数据,

 //set the value
        var someObject = {... };

        var newMessage = new Message(JsonConvert.SerializeObject(someObject))
        {
            ContentType = "application/json"
        };

        //get the value
        Message message;
        var x = message.GetBody<string>()

我尝试创建如下所示的类,但是必须提供方法的主体。如何设计此类?

public class Message
{
    public Message(object serializableObject);
    public string SessionId { get; set; }
    public string ContentType { get; set; }

    public T GetBody<T>();
}

1 个答案:

答案 0 :(得分:1)

我想我理解您的问题,但是您错过了构造函数

new Message(JsonConvert.SerializeObject(someObject)) //<-- string is passed

我认为您误解了JsonConvert.SerializeObject(someObject)语句,它将返回字符串而不是对象。而您使用了错误的类型作为构造函数的参数。

public Message(object serializableObject); // should be a string

要更正您的课程,您需要按照以下方式进行设计...

public class Message
{
    private readonly string _json;

    public Message(string json)
    {
        _json = json;            
    }

    public string GetBody() // not generic, but you get the idea now.
    {
        return json;
    }
}