【问题标题】:Dictionary has no suitable copy constructor字典没有合适的复制构造函数
【发布时间】:2013-08-20 00:08:46
【问题描述】:

我正在尝试将 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 新手。我想我了解什么是复制构造函数,但我不确定为什么在这种情况下需要一个,或者如何解决这个错误..

谢谢

【问题讨论】:

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


    【解决方案1】:

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

    变化:

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

    到:

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

    注意第三个^ 就在obj 之前以及(data) 之前。

    【讨论】:

    • 谢谢,我仍然掌握这些句柄的窍门。我认为通用 T arg 字典也需要另一个,这解决了问题。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多