DataMember找不到。

7

我已经就我的问题进行了研究,但仍然没有解决错误 Error 1:The type or namespace name 'DataMember' could not be found (are you missing a using directive or an assembly reference?)

我找到的一种解决方法是引用System.Runtime.Serialization,但即使添加了引用,我仍没有成功。

以下是我的代码:

using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using System.Runtime.Serialization;
using System.Xml.Serialization;

namespace WebServApp
{
    [Serializable]
    public class Employee
    {
        [DataMember]
        public int EmpNo { get; set; }
        [DataMember]
        public string EmpName { get; set; }
        [DataMember]
        public int DeptNo { get; set; }
        [DataMember]
        public int Salary { get; set; }
    }
}

这是我正在尝试跟随的教程: http://www.dotnetcurry.com/ShowArticle.aspx?ID=472

有人能帮我解决这个错误吗?


即使您添加了 System.Runtime.Serialization,仍然无法正常工作吗? - cuongle
即使我在菜单中使用“添加引用”或输入“using System.Runtime.Serialization”,仍然无法正常工作。 - SleepNot
你正在使用哪个版本的CompactFramework进行构建?可能只有3.5版本可用? - Thorsten Dittmar
我正在使用CompactFramework 3.5。 - SleepNot
检查你的框架版本。 - Asif Mushtaq
你的Web服务器里面有序列化吗? - user153923
2个回答

25

System.Runtime.Serialization 从代码中移除,然后从菜单 > 项目 > 添加引用中添加它..> 。然后再次将其添加到代码中。 这样可以解决问题。


一旦您进入参考管理器,您会在程序集 > 框架选项卡下找到 System.Runtime.Serialization。 - pwnsauce

3
我已经解决了这个问题。 我只是在项目资源管理器中删除了System.Runtime.Serialization的引用,然后通过浏览添加它,然后它就能正常工作了。很奇怪。

是的,你写成了 [Serializable] 而不是 DataContract。组织:[DataContract(Name = "Employee", Namespace = "")] public class Employee { [DataMember] public int EmpNo { get; set; } [DataMember] public string EmpName { get; set; } [DataMember] public int DeptNo { get; set; } [DataMember] public int Salary { get; set; } }。有时候复制粘贴可以很方便。 - josef
不是的。[Serializable] 不是问题所在。我只是按照我上面的答案所做的去做了一遍。当它起作用时,我实际上从代码中删除了 [Serializble],但它仍然可以工作。 - SleepNot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接