2017-05-03 15 views
0

内部のNameValueCollectionでNameValueCollectionを初期化しようとすると、C#コンパイラはNameValueCollection(string、string)でなければならないと言います。NameValueCollectionを内部のNameValueCollectionで初期化する方法

私がこれを初期化するときにAdd関数を呼び出すと思ったように。

  • void Add(NameValueCollection c);
  • void(文字列名、文字列値)を追加します。

NameValueCollectionに基づいて、同じ行を同じ行で初期化できる方法はありますか?

理由は、私がHTTPAddressにデータをPOSTする必要があると私はここでは、このfunction

を使用することでは働いていないだろう私の例である:

NameValueCollection data = new NameValueCollection() 
{ 
    { "key1", "value1"}, 
    { "key2", new NameValueCollection() 
    { 
     { "key2sub", "value"} 
    } 
}; 
+1

名前型コレクションのすべての部分を同じ型にする必要があります。これは 'NameValueCollection'に固有です。 – vipersassassin

答えて

1

取るUploadValues(..)方法をreally.TheありませんNameValueCollection、およびNameValueCollectionは、のみを受け入れます。

方法の目的は、あなたのデータを変換することです...

... URLへ:

http://www.example.com/?key1=value1&key2=value2 

あなたはより多くの情報を送信したい場合は、あなたが置くことができます区切られた文字列をキーの1つの値として入力し、もう一方の端でもう一度分割します。 、

http://www.example.com/?key1=value1&key2=value2,value3,value4 

しかし、最善の解決策は、(今は削除)@hmnzr said in their answerようである完全NameValueCollectionを避け、UploadString(..)方法を使用してJSONとしてシリアル化カスタムオブジェクトをアップロードする:のようなものを作る必要があります

UploadValues("http://www.example.com/", new NameValueCollection() 
{ 
    { "key1", "value1" }, 
    { "key2", "value2,value3,value4" } 
}; 

+0

私は自分のタスクを達成するためにNameValueCollectionを使用しませんが、thx! –

関連する問題