2017-05-03 57 views
0

在我尝试使用内部NameValueCollection初始化NameValueCollection之后,c#编译器说必须是NameValueCollection(string,string)。如何使用内部NameValueCollection初始化NameValueCollection

正如我想当我像这样初始化时调用Add函数。

  • void Add(NameValueCollection c);
  • void Add(string name,string value);

是否有任何其他方法,我可以初始化基于NameValueCollection的一行上相同?

的原因是,我有POST数据到一个HTTPAddress我用这个function

这是我的例子,这将不工作:

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

您必须制作相同类型的名称值集合的所有部分。这是'NameValueCollection'中固有的。 – vipersassassin

回答

1

不really.The UploadValues(..)方法取NameValueCollectionNameValueCollection只接受string

方法的目的是把你的数据...

...进入网址:

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

如果你想发送的更多信息,你可以把一个分隔字符串作为您的某个键的值,然后在另一端将其再分开。

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

这应该产生这样的:

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

但是,最好的解决方案是为@hmnzr said in their answer(现已删除),以避免NameValueCollection完全和使用UploadString(..)方法上传序列化为JSON的自定义对象。

+0

我不会使用NameValueCollection来完成我的任务,但thx! –

相关问题