2017-03-27 9 views
1

サードパーティのWebサービスをテストするためのシンプルなC#Windowsアプリケーションを作成しました。ここで私は、生成しReference.csサードパーティのXMLでarray型のインスタンスを作成するにはどうすればよいですか?

​​

からフィールドの2リクエストオブジェクトを作成し、以下のように価格に値を割り当てられています -

RequestServiceType myRequest = new RequestServiceType(); 

myRequest.Price = new Blah.PriceType(); 
myRequest.Price.GrossPrice = new Blah.AmountType(); 
myRequest.Price.GrossPrice.Value = 10M; 

しかし

myRequest.Contact = new Blah.ContactType(); 

'' RequestServiceType.ContactType 'タイプを暗黙的に' RequestServiceType.ContactType [] 'に変換できません。

ContactTypeは、Reference.cs(ContactType[])の配列です。 myRequestContactのインスタンスを作成するにはどうすればよいですか?

+0

のためだけ糖衣構文である

この意志のクレート1つのインスタンス

myRequest.Contact = new []{ new Blah.ContactType() }; 

を含む配列あなたは属性の配列を持つことができません。以下から変更:XmlElementAttribute:XmlElement – jdweng

+0

ありがとうございます。 Webサービスは外部の第三者によって提供され、Reference.csは自動生成されます。 – Codemonkey

+0

自動生成されている場合は、エラーの可能性があるスキーマから実行されます。 – jdweng

答えて

0

明示的キャスティングを試すことができますか?

myRequest.Contact =(Contact [])(新しいBlah.ContactType());

+0

ありがとうございますが、IDEは「キャストは冗長です」と表示します。潜在的な修正は、キャストを取り除くことで、私を正方形に戻します。 – Codemonkey

0

ここでの問題は何ですか。

プロパティにオブジェクトの配列が必要なときに、オブジェクトのインスタンスをプロパティに割り当てることをエラーメッセージで明確に説明しています。

var contact = new new Blah.ContactType(); 
var array = new Blah.ContactType[1]; 
array[0] = contact; 
myRequest.Contact = array; 
+0

こんにちは。私は先週それを並べ替えることができましたが、あなたの例はよりエレガントです。ありがとうございました。 – Codemonkey

関連する問題