转换字典<字符串,字符串时出现显式转换运算符错误>



用户定义的转换必须与封闭类型进行转换。

在尝试转换Dictionary<string,string>时出现问题。这可能吗?

下面是我的代码。

    using Newtonsoft.Json;
    public static implicit operator Dictionary<string, string>(string jsonString)
    {
        return JsonConvert.DeserializeObject<Dictionary<string, string>>(jsonString); ;
    }
    public static implicit operator string(Dictionary<string, string> dict)
    {
        return JsonConvert.SerializeObject(dict);
    }

这是否意味着我应该在Dictionary类中编写这两个方法?如果是这样,是否不可能将字符串转换为Dictionary ?谢谢你的帮助。

如果Dictionary<string, string>string不转换为您定义操作符的类型,则不能为它们定义额外的转换操作符,就像您不能为这些类型声明额外的方法一样。

您需要将这些转换定义为普通的静态实用程序方法,或者您可以定义一个从Dictionary<string, string>派生的类,并在其中定义操作符:

public class StringDictionary : Dictionary<string, string>
{
    public static implicit operator StringDictionary(string jsonString) 
    {
        return JsonConvert.DeserializeObject<StringDictionary>(jsonString);;
    }
    public static implicit operator string(StringDictionary dict) 
    {
        return JsonConvert.SerializeObject(dict);
    }
}

相关内容

最新更新