У меня есть XML файл в следующем формате, где action type=0
- настройки по умолчанию.
Actiontype 1 и 2 - настройки переопределения.Поэтому, когда настройки типа 1 или 2 доступны в XML, они должны переопределять настройки по умолчанию.
Чтобы переопределить идентификаторы полей типа по умолчанию = 0, я пытаюсь выполнить соединение с идентификатором поляпереопределить type = 1, чтобы я мог получить значения type = 1 и использовать их в своем приложении.Однако соединение не работает.Есть ли лучший способ переопределить значения по умолчанию?
Тип = 0 всегда доступен, но будет передан либо Тип = 1, либо Тип = 2.
Есть ли другой способ сделать этос отражением?
XML
<ActionTypes>
<ActionType Type="0">
<Field Id="Label1" Name="StartDate" ComparePreviousYear="False" CompareCurrentYear="True"></Field>
<Field Id="Label2" Name="EndDate" ComparePreviousYear="False" CompareCurrentYear="True"></Field>
<Field Id="Label3" Name="Cost" ComparePreviousYear="True" CompareCurrentYear="False"></Field>
<Field Id="Label4" Name="Total" ComparePreviousYear="False" CompareCurrentYear="False"></Field>
</ActionType>
<ActionType Type="1">
<Field Id="Label3" Name="Cost" ComparePreviousYear="True" CompareCurrentYear="True"></Field>
</ActionType>
<ActionType Type="2">
<Field Id="Label2" Name="EndDate" ComparePreviousYear="True" CompareCurrentYear="True"></Field>
</ActionType>
</ActionTypes>
Код
IEnumerable<XElement> defaultFields = from test in defaultElements.Elements()
where test.Attribute("Type").Value == "0"
select test;
IEnumerable<XElement> overrideFields = from test in defaultElements.Elements()
where test.Attribute("Type").Value == "1"
select test;
var overrideFields = from dflt in dftElements.Elements("Field")
join ovrd in ovrElements.Elements("Field") on dflt.Attributes("Id") equals ovrd.Attributes("Id")
select dflt,ovrd;