どのようにSpring.netのXMLプロパティの値を設定するのですか?

StackOverflow https://stackoverflow.com/questions/964488

  •  12-09-2019
  •  | 
  •  

質問

どのようにXMLプロパティの値を設定するのですか?

これは私がいない大成功と試みたものです。

<property name="Resources" value="&#60;resources/&#62;"/>

リソースは、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')" />
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top