1

C# に移行する古い J# コードがいくつかあります

  XmlNodeList itemTransferOutNodes = 
                 strXML.GetElementsByTagName("ItemTransferOut");
  XmlElement itemInfo = 
                 itemTransferOutNodes.Item(itemTrOutNodesCnt)
                                     .ChildNodes.Item(0)
                                     .get_Item("itemInfo");

と呼ばれるメソッド C#の API には表示されません。で何を変えるべきか 。XmlNodeListget_Itemget_Itemc#

ありがとう 。

4

4 に答える 4

1

J# は C# のようなプロパティをサポートしていないため、代わりにメソッドを使用して「偽造」されます。詳細については、MSDN を参照してください。C# オブジェクトに SomeProperty という名前のプロパティがある場合:

 public class Dummy {
      public string SomeProperty { get; set; }
 }

J# では、get_SomeProperty() と set_SomeProperty(string value) を呼び出す必要があります。

 public class Dummy
 {
      private String someProperty;

      /** @property */
      public void set_SomeProperty(String val) { 
          someProperty = val; 
      }

      /** @property */
      public String get_SomeProperty() { 
          return someProperty; 
      }
 }

そしてその逆もまた然りです。

J# で get_xxx または set_xxx という名前のクラス メソッドを見つけた場合、C# ではオブジェクトに xxx という名前のプロパティがある可能性が最も高いです。

したがって、基本的に、他の人が言及したように、コードで Item プロパティを使用する必要があります。

XmlNodeList itemTransferOutNodes = 
                  strXML.GetElementsByTagName("ItemTransferOut");

XmlElement itemInfo = 
                  itemTransferOutNodes.Item(itemTrOutNodesCnt)
                  .ChildNodes.Item(0).Item["itemInfo"];

それが役立つことを願っています:)

于 2012-07-12T08:25:44.780 に答える
1

いくつかの方法がありますが、LINQ to XMLをお勧めします

あなたのXMLを見なければ、それは次のようになると思います:

strXml.Root
      .Decendants("ItemTransferOut")
      .First(xele => xele.Name.LocalName == "itemInfo")
于 2012-07-12T08:20:01.050 に答える
1
XmlElement itemInfo = itemTransferOutNodes.Item(itemTrOutNodesCnt)
                                          .ChildNodes
                                          .Item(0)["itemInfo"]; 

MSDN の XMLNode.Item ドキュメント

于 2012-07-12T08:12:30.347 に答える
0

XmlNode.Item プロパティ (文字列)を使用します。msdn から:

指定された Name を持つ最初の子要素を取得します。

于 2012-07-12T08:16:27.817 に答える