Dictionary没有合适的拷贝构造函数

时间:2013-08-17 19:49:19

标签: .net json serialization dictionary c++-cli

我正在尝试将JSON格式的字符串转换为字典,请参阅下文:

using namespace System::Web::Script::Serialization;

...

String ^data = "{Name: 'sherlock', Problem: 'deserialization'}";
JavaScriptSerializer ^serializer = gcnew JavaScriptSerializer();
Dictionary<String^, Object^> obj = serializer->Deserialize<Dictionary<String^, Object^>>(data);

我收到了错误,

class "System::Collections::Generic::Dictionary<System::String ^, System::Object ^>" has no suitable copy constructor

我是来自c#的c ++ / cli的新手。我想我理解复制构造函数是什么,但我不确定为什么在这种情况下需要一个,或者如何解决这个错误..

由于

1 个答案:

答案 0 :(得分:4)

您忘记了词典引用本身的^

变化:

Dictionary<String^, Object^> obj = 
          serializer->Deserialize<Dictionary<String^, Object^>>(data);

为:

Dictionary<String^, Object^>^ obj = 
          serializer->Deserialize<Dictionary<String^, Object^>^>(data);

请注意^之前和obj之前的第3 (data)条。