使用 System.Runtime.Serialization 但未找到 IgnoreDataMemberAttribute 和 DataMemberAttribute

Using System.Runtime.Serialization but IgnoreDataMemberAttribute and DataMemberAttribute not found

我正在尝试让 this 小型 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 只是显示它正在执行但没有任何反应。

正如@Ian Kemp 在评论中所说,我必须添加对 dll 的引用。通常我和骑手一起工作,这种情况会自动发生。