使用 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 的引用。通常我和骑手一起工作,这种情况会自动发生。
我正在尝试让 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 的引用。通常我和骑手一起工作,这种情况会自动发生。