どのようにSpring.netのXMLプロパティの値を設定するのですか?
-
12-09-2019 - |
質問
どのようにXMLプロパティの値を設定するのですか?
これは私がいない大成功と試みたものです。
<property name="Resources" value="<resources/>"/>
リソースは、XmlDocumentのフィールドです。
解決
ただ、明確にする:このプロパティは、XmlDocumentのあるフィールドを持つオブジェクト上で、あなたはそれがルート要素「リソース」と空のXmlDocumentに初期化することにしたい。
XmlDocumentsは、それが建設に来る場合は特に、常にで動作する最も簡単なオブジェクトではありません。
確かに春がXmlDocumentオブジェクトに文字列を有効にする方法を知ることができません。
あなたはそれが簡単にあなたがしたいのXmlDocumentを生成するためのコードを使用することを見つけるかもしれません。たとえば、常にXmlDocumentを生成する静的ヘルパーメソッドを作成し、そのメソッドを呼び出すことによって、プロパティの値を設定します。
別の(その場しのぎ-y)のオプションは、文字列としてXMLを扱う「ヘルパー」プロパティを持つことです。たとえば、あなたが「」nullまたはに設定します「_ResourcesXml」と呼ばれるプロパティ。プロパティは、XmlDocumentオブジェクトを構築し、リソースのプロパティのバッキングフィールドを設定します。同様に、読書_ResourcesXmlはResources.OuterXmlを返すことができます。
他のヒント
私はあなたが(MethodInvokingFactoryObjectを使用して)このようなもので、要求の結果を得ることができると思います:
<object id="Document" type="System.Xml.XmlDocument, System.Xml" />
<object type="Spring.Objects.Factory.Config.MethodInvokingFactoryObject, Spring.Core">
<property name="TargetObject">
<ref local="Document" />
</property>
<property name="TargetMethod" value="AppendChild" />
<property name="NamedArguments">
<dictionary>
<entry key="newChild">
<object type="Spring.Objects.Factory.Config.MethodInvokingFactoryObject, Spring.Core">
<property name="TargetObject">
<ref local="Document" />
</property>
<property name="TargetMethod" value="CreateElement" />
<property name="NamedArguments">
<dictionary>
<entry key="name" value="resources" />
</dictionary>
</property>
</object>
</entry>
</dictionary>
</property>
</object>
とにかく、これはあなたが得るほとんど効果のための非常に複雑なようです。ネーダーは、すでに述べたように、それは少しヘルパーファクトリを作成することをお勧めします。
別のオプションは、表現をを使用することです。あなたは、例えば、設定内のメソッドを呼び出すことができます次のように:
<object id="..." type="..." expression="@(Document).CreateElement('resources')" />