どのようにxmlプロパティの値を設定しますか?Spring.netでxmlプロパティの値を設定するにはどうすればよいですか?
これは私がいない大成功と試みたものです:
<property name="Resources" value="<resources/>"/>
リソースは常にXmlDocumentフィールドです。
どのようにxmlプロパティの値を設定しますか?Spring.netでxmlプロパティの値を設定するにはどうすればよいですか?
これは私がいない大成功と試みたものです:
<property name="Resources" value="<resources/>"/>
リソースは常にXmlDocumentフィールドです。
明確にする:このプロパティは、XmlDocumentであるフィールドを持つオブジェクト上にあり、ルート要素 "resources"を持つ空のXmlDocumentに初期化する必要があります。
XmlDocumentsは、特に建設に関しては、常に最も簡単なオブジェクトではありません。
Springは、文字列をXmlDocumentに変換する方法を理解していません。
コードを使用して、必要なXmlDocumentを生成する方が簡単です。たとえば、XmlDocumentを生成する静的ヘルパーメソッドを作成し、そのメソッドを呼び出してプロパティの値を設定します。
別の(kludge-y)オプションは、xmlを文字列として扱う "ヘルパー"プロパティを持つことです。たとえば、 "_ResourcesXml"という名前のプロパティをnullまたは ""に設定します。プロパティは、XmlDocumentを作成し、Resourcesプロパティのバッキングフィールドを設定します。同様に、_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>
、これはあなたが得るほとんど効果のための非常に複雑なようです。 Naderがすでに述べたように、小さなヘルパーファクトリを作成することをお勧めします。
もう1つのオプションはexpressionsです。 config内のメソッドを呼び出すことができます。次のようになります。
<object id="..." type="..." expression="@(Document).CreateElement('resources')" />