簡體   English   中英

如何從字符串化的 XML 中獲取枚舉值?

[英]How to obtain Enum value from stringified XML?

我有一個方法,它獲取字符串化的 XML 作為參數,並返回一個 object,其中字符串的特定字段作為其屬性。這些字段與 class 字段映射。

到目前為止,我可以獲得具有兩個屬性(Id,Title)但不是 Enum 屬性的結果(processedObj)。 如何使其可識別並獲得其當前價值?

主class

email.Content = '<EmailClass><ID>210</ID><Title>Urgent</Title><Date>2020-06-01</Date> 
              <Action>Delete</Action></EmailClass>'

Dim processedObj = XmlProcessor.ObjectfromStrXml(Of EmailClass)(email.Content)

電子郵件類 class

<Serializable()>
<XmlRoot("EmailClass")>
Public Class EmailClass

    Public ID As String
    Public Title As String
 
    Public Enum Action
        Send
        Delete
    End Enum

End Class

Xml處理器 class

public static T ObjectfromStrXml<T>(string p_StrXML){
            T result;
            using (MemoryStream mStream = new MemoryStream(Encoding.UTF8.GetBytes(p_StrXML)))
            using (StreamReader stReader = new StreamReader(mStream , Encoding.UTF8))
            using (XmlReader reader = new XmlTextReader(stReader))
            {
                XmlSerializer serializer = new XmlSerializer(typeof(T));
                result = (T)(serializer.Deserialize(reader));
                streamReader.Close();
                memoryStream.Close();
                reader.Close();
            }

            return result;
}

試試下面的代碼:

Public Class EmailClass

    Public ID As String
    Public Title As String
    Private PAction As EAction

    Public Property Action As String
        Get
            Return PAction.ToString()
        End Get
        Set(value As String)
            PAction = [Enum].Parse(GetType(EAction), value)
        End Set
    End Property


    Public Enum EAction
        Send
        Delete
    End Enum

End Class

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM