У меня есть файл XML в следующем формате, где action type=0
- настройки по умолчанию.
Типы действий 1 и 2 являются переопределенными настройками. Поэтому всякий раз, когда в XML доступны настройки типа 1 или типа 2, они должны переопределять настройки по умолчанию.
Чтобы переопределить идентификатор поля по умолчанию type = 0, я пытаюсь выполнить соединение с идентификатором поля override 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;