用户定义的转换必须与封闭类型进行转换。
在尝试转换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);
}
}