0

私は何かをしようとしていますが、それは非常に単純かもしれませんので、ご容赦ください。XMLファイルからC#コードの文字列に属性を取得したいだけです。これが私が持っているものです:

XML:

<MonitorResponseRecord Enabled="false" DisplayName="ValveFailureAtCentralPosition">
        <ExpressionMonitor>
        <AlarmName>Valve_Position_Fault</AlarmName>
            <Parameter> Sensor Position = {X}</Parameter>
        </ExpressionMonitor>
</MonitorResponseRecord>
<MonitorResponseRecord ...  ... ...>
... ...
... ... and so on about 1600 times.

C#:

[Selrializable]
[XmlType("Alarm")]  
public class AlarmDefinition
    {
        public AlarmDefinition() {}
        public AlarmDefinition Clone()
        {
            AlarmDefinition clone = new AlarmDefinition();
            clone.DisplayName = DisplayName;
                          clone.Category = Category;
        clone.Color = Color;
        clone.Description = Description;
                          return clone;

                 }

    [XmlAttribute( ??????????? )] public string DisplayName = "";

だから誰かが私が'???????????'で何が必要になるか知っていますか セクション?私はもう試した:

[XmlAttribute("MonitorResponseRecord",AttributeName = "DisplayName")] public string DisplayName = "";
4

1 に答える 1

2

属性は@DisplayNameであるため、次のいずれかになります。

[XmlAttribute]
public string DisplayName = "";

または、より明確に:

[XmlAttribute("DisplayName")]
public string DisplayName = "";

(ただし、プロパティはパブリックフィールド、IMOよりも望ましいです)

本当の問題はルート名のようです。xmlドキュメントの最も外側の部分である場合は、次のものが必要になります。

[XmlRoot("MonitorResponseRecord")]
public class AlarmDefinition {...}
于 2012-05-31T20:16:39.550 に答える