Mono Android XmlSerializer不使用XmlAttributeOverrides

时间:2018-10-10 21:05:12

标签: c# xamarin xamarin.android mono xmlserializer

我有一个针对.NET Framework 4.5和Xamarin.Android等的PCL。

在PCL中,我正在按以下方式构造XmlSerializer:

XmlAttributeOverrides overrides = new XmlAttributeOverrides();

XmlAttributes overrideAttributes = GenerateOverrideAttributes(dType, pType, attr);

overrides.Add(dType, prop.Name, overrideAttributes);

_serializer = new XmlSerializer(tType, overrides);

在这里:
dType是一个名为UIVisibleNode的类,
pType是一个名为UINode的抽象类,
prop.Name是“ Children”,它引用的是UIVisibleNode的属性

List<UINode>

在GenerateOverrideAttributes()内,我为每个继承自UINode的类创建一个具有XmlElementAttribute的XmlAttributes。

当我运行一个使用PCL的Windows项目时,XmlSerializer可以按照我想要的方式使用以下XML:

<layout width=".25" height =".25" x="0" y="0" id="portrait" class="render">
<background color="white">
    <div x=".03" y=".05" width=".94" height =".9" layout="proportional_rows" paddingX=".01" paddingY=".02">
        <background color="black">

        </background>
        <background color="gray" multiplier="3" padding=".1">
            <label color="white" font="emulogic.ttf" fontSize="15">Test UI</label>
        </background>
        <br brSize="1" />
        <background class="back,Lab" color="green">
            <label class="Lab" color="white" font="emulogic.ttf" fontSize="15">GREEN</label>
        </background>
        <background color="red">
            <label class="Lab" color="white" font="emulogic.ttf" fontSize="15">RED</label>
        </background>
        <background color="blue">
            <label class="Lab" color="white" font="emulogic.ttf" fontSize="15">TLUE</label>
        </background>
        <background color="blue">
            <label class="Lab" color="white" font="emulogic.ttf" fontSize="15">BLUE</label>
        </background>
    </div>
</background>
</layout>

这意味着当我反序列化XML时,我得到一个UILayoutNode类(继承UIVisibleNode),反序列化的UILayoutNode具有“ Children”属性,其中包含一个UIBackground类,其子级是单个UIDiv类,该类具有6个UIBackgrounds和1个UIBr作为它的孩子(等)

但是,当我使用PCL的Xamarin.Android项目尝试反序列化相同的XML时,所得的UILayoutNode没有子级。

我已经四处搜寻,但似乎无法找到更多相关信息,除了以下内容:https://github.com/xamarin/Xamarin.Forms/issues/2542

我是否认为这是无法在android方面实现的功能?还是我在这里还缺少其他见解?

0 个答案:

没有答案
相关问题