将字符串转换为自定义<字符串>
Posted
技术标签:
【中文标题】将字符串转换为自定义<字符串>【英文标题】:Cast - string to Custom<string> 【发布时间】:2011-08-17 12:43:29 【问题描述】:我的属性有一个自定义包装对象:MyType<t>
。
我有这些类型的私有成员和 t 类型的公共成员。
我正在尝试加载对象,但遇到了转换错误:
无法将“System.String”类型的对象转换为类型 'Model.MyType`1[System.String]
我有以下方法:
private t _value;
public static implicit operator t(MyType<t> obj)
return obj._value;
任何帮助我完成演员阵容的工作都会很棒。
更新:
该成员如下所示:
MyType<string> PostalCode = new MyType<string>();
我正在使用 Dapper 加载属性,并且没有命中建议的方法。因此,当反射引擎尝试加载对象时,不会触发隐式转换。
【问题讨论】:
【参考方案1】:您的操作员倒退了。它支持从MyType<t>
转换为t
。你想反过来。也许您正在寻找类似的东西。
private t _value;
private MyType(t val)
_value = val;
public static implicit operator MyType<t>(t obj)
return new MyType<t>(obj);
使用构造函数是可选的,我个人只是觉得更干净。您可以只使用默认构造函数并在您的运算符中显式设置字段。
【讨论】:
这是有道理的。但是,这些方法没有被击中。 @Arnej65 Dapper 可能会尝试进行显式转换,您也可以覆盖它,将implicit
更改为 explicit
。
我把它和这个混在一起:***.com/questions/5898988/…【参考方案2】:
您的隐式转换运算符与错误所抱怨的方向相反,您需要实现另一个隐式运算符以从 t
转到 MyType<t>
。
您也可以通过显式强制转换来执行相同的操作(您可以执行string foo = (string)someObject;
之类的操作):
http://msdn.microsoft.com/en-us/library/xhbhezf4(v=vs.71).aspx
【讨论】:
以上是关于将字符串转换为自定义<字符串>的主要内容,如果未能解决你的问题,请参考以下文章
当 minifyEnabled 为 true 时,如何将 JSON 字符串转换为自定义对象?