WCF分布式开发常见错误(8):不一致的访问性Inconsistent accessibility

本文介绍了解决WCF服务中数据契约类访问属性设置不一致导致的错误方法。通过调整数据契约类的访问级别为public,确保与服务契约接口保持一致,从而消除编译错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  在设计数据契约类,并使用其做参数实现客户端与服务端数据交互的时候,编辑服务类,出现以下错误:
Error 1 Inconsistent accessibility: parameter type 'WCFService.UserDataContract' is less accessible than method 'WCFService.IWCFService.AddNewUser(WCFService.UserDataContract)' E:\CodesVs2008\WCFServiceDataContractFrankXuLei\WCFServiceFrankXuLei\WCFService\WCFService.cs 19 14 WCFService
  其它类似错误信息:
Error 2 Inconsistent accessibility: return type 'WCFService.UserDataContract' is less accessible than method 'WCFService.IWCFService.GetUserByName(string)' E:\CodesVs2008\WCFServiceDataContractFrankXuLei\WCFServiceFrankXuLei\WCFService\WCFService.cs 22 26 WCFService
解决办法:
   此错误是由于数据契约类的访问属性设置与服务契约访问属性不一致所致,服务契约接口的访问行为public,服务类也是public,而数据契约类没有生命对应的访问属性。
我们把数据契约类添加public关键字即可。示例代码如下:
[DataContract]//数据契约属性声明
        public class UserDataContract
        {
                [DataMember(Name = "UserName")]//数据成员标记,支持别名定义
                public string Name
                {
                        get;
                        set;
                }

                [DataMember(Name = "UserEmail")]//数据成员标记,支持别名定义
                public string Email
                {
                        get;
                        set;
                }
                [DataMember]//数据成员标记
                public string Mobile
                {
                        get;
                        set;
                }
                //没有[DataMember]声明,不会被序列化
                public string Address
                {
                        get;
                        set;
                }
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值