首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类型中带有缩窄运算符的属性的XmlDeserialization

类型中带有缩窄运算符的属性的XmlDeserialization
EN

Stack Overflow用户
提问于 2013-06-19 12:27:44
回答 1查看 85关注 0票数 2

我已经创建了以下自定义类来处理特定的字符串(“YYY”)作为动态当前值的表示形式。有几个ou扩展、缩小和ToString函数来帮助程序员进行代码转换.

我的问题是当我使用反序列化时,使用XmlSerializer,一个使用MyDateTime的类。我认为XmlSerializer会在使用反射之前使用Narrowing Operator CType(rightSide As String) As MyDateTime作为对象初始化器。

如果我希望MyDateTime的xml反序列化类属性使用Narrowing Operator CType(rightSide As String) As MyDateTime初始化,该怎么办??

代码语言:javascript
复制
Public Class MyDateTime

Const cstUniversalTodayValue As String = "YYYY-MM-DD"

Dim _internalStringRepresentation As String
Dim _internaValue As MyDateTime

Public ReadOnly Property DynamicToday As Boolean
    Get
        Return _internalStringRepresentation = cstUniversalTodayValue
    End Get
End Property

Public Shared Widening Operator CType(rightSide As MyDateTime) As MyDateTime

    Return rightSide._internaValue
End Operator
Public Shared Widening Operator CType(rightSide As MyDateTime) As String

    Return rightSide._internalStringRepresentation
End Operator

Public Shared Narrowing Operator CType(rightSide As MyDateTime) As MyDateTime

    Return New MyDateTime With {._internalStringRepresentation = rightSide.ToString("yyyy-MM-dd"), ._internaValue = rightSide}
End Operator
Public Shared Narrowing Operator CType(rightSide As String) As MyDateTime

    Dim instance = New MyDateTime With {._internalStringRepresentation = rightSide}
    If instance.DynamicToday Then

        instance._internaValue = DateTime.Today
    Else

        instance._internaValue = Convert.ToDateTime(rightSide)
    End If

    Return instance
End Operator

Public Overrides Function ToString() As String
    Return Me
End Function
Public Overloads Function ToString(format As String) As String

    Return _internaValue.ToString(format)
End Function
End Class
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-19 17:56:32

XmlSerializer不使用类型转换。只需使用斯根工具为您的类型生成序列化程序集,并通过反射器浏览生成的代码以了解其工作原理。

XmlSerializer实例化执行其构造函数的类,并在以后填充其可序列化属性。

要确保正确序列化类的实例,请实现ISerializable接口。您还可以通过实现IXmlSerializable接口获得对XML序列化过程的更多控制。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17191193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档