【发布时间】:2021-02-24 09:36:47
【问题描述】:
我正在尝试让this small JSONParser 工作。基本上你只需将代码复制到你的项目中。我唯一更改的是命名空间,但在以下部分出现错误:
T member = members[i];
if (member.IsDefined(typeof(IgnoreDataMemberAttribute), true)) //error for IgnoreDataMemberAttribute
continue;
string name = member.Name;
if (member.IsDefined(typeof(DataMemberAttribute), true)) // error for DataMemberAttribute
{
DataMemberAttribute dataMemberAttribute = (DataMemberAttribute)Attribute.GetCustomAttribute(member, typeof(DataMemberAttribute), true); // error for DataMemberAttribute
if (!string.IsNullOrEmpty(dataMemberAttribute.Name))
name = dataMemberAttribute.Name;
}
这会导致:
error CS0246: Der Typ- oder Namespacename "DataMemberAttribute" wurde nicht gefunden
error CS0246: Der Typ- oder Namespacename "IgnoreDataMemberAttribute" wurde nicht gefunden
但我的脚本顶部有 using System.Runtime.Serialization;
在另一部分,导入工作正常。
object instance = FormatterServices.GetUninitializedObject(type); //no error here
这里出了什么问题?
我尝试将 using-directives 移动到命名空间中,以确保没有任何内容填充命名空间,但它没有改变任何东西。
奇怪的是,Visual Studio 建议 using System.Runtime.Serialization,但当我点击它时,Visual Studio 只是显示它正在执行它,但没有任何反应。
【问题讨论】:
-
您需要实际引用包含这些类型的 DLL。如果你浏览到docs.microsoft.com/dotnet/api/…,你会看到
System.Runtime.Serialization.dll。