【问题标题】:Using System.Runtime.Serialization but IgnoreDataMemberAttribute and DataMemberAttribute not found使用 System.Runtime.Serialization 但未找到 IgnoreDataMemberAttribute 和 DataMemberAttribute
【发布时间】: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 只是显示它正在执行它,但没有任何反应。

【问题讨论】:

标签: c# .net using .net-4.8


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-18
    • 1970-01-01
    • 2010-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多