关于 webservice 或者 wcf 提供的方法,在引用后类属性后自动添加 k__BackingField 关键字的说明
2011-05-10 10:30
197 查看
最近做 wcf 项目暴露 webservice 接口的项目,其它同事写的 wcf 方法在被客户引用后,
在类属性后自动加上了 k__BackingField 关键字(客户端调用的时候看着很不爽啊!!!)
,结果自己找了半天资料,也自己手动测试过自己添加的类在引用后居然没有此类问题??
很奇怪啊,今天同事来了一起说了下,哎!对比的还是不够细致啊!
-----
其实原因很简单就是因为那个属性所在的类继承了 IDisposable 接口,就产生这种现象了
-------------------------------------------------------------------------------------------------
演示代码如下:
-------------------------------------------------------------------------------------------------
1. wcf 中使用的类继承了 IDisposable 接口
wcf 项目中的 Person 类
[Serializable]
public class Person : IDisposable
{
public string Name { set; get; }
public int Age { set; get; }
public void Dispose()
{
}
}
其它web项目引用 wcf 后的 Person 类
using (ServiceReference1.NoteServiceClient client = new ServiceReference1.NoteServiceClient())
{
ServiceReference1.Person person = new ServiceReference1.Person();
person.Namek__BackingField = "";
person.Agek__BackingField = 100;
client.GetPersonInfo(person);
}
-------------------------------------------------------------------------------------------------
2. wcf 中使用的类去掉对 IDisposable 接口的继承
( 这样使用看着多顺眼啊!!哈哈)
wcf 项目中的 Person 类
[Serializable]
public class Person
{
public string Name { set; get; }
public int Age { set; get; }
public void Dispose()
{
}
}
其它web项目引用 wcf 后的 Person 类
using (ServiceReference1.NoteServiceClient client = new ServiceReference1.NoteServiceClient())
{
ServiceReference1.Person person = new ServiceReference1.Person();
person.Name = "";
person.Age = 100;
client.GetPersonInfo(person);
}
在类属性后自动加上了 k__BackingField 关键字(客户端调用的时候看着很不爽啊!!!)
,结果自己找了半天资料,也自己手动测试过自己添加的类在引用后居然没有此类问题??
很奇怪啊,今天同事来了一起说了下,哎!对比的还是不够细致啊!
-----
其实原因很简单就是因为那个属性所在的类继承了 IDisposable 接口,就产生这种现象了
-------------------------------------------------------------------------------------------------
演示代码如下:
-------------------------------------------------------------------------------------------------
1. wcf 中使用的类继承了 IDisposable 接口
wcf 项目中的 Person 类
[Serializable]
public class Person : IDisposable
{
public string Name { set; get; }
public int Age { set; get; }
public void Dispose()
{
}
}
其它web项目引用 wcf 后的 Person 类
using (ServiceReference1.NoteServiceClient client = new ServiceReference1.NoteServiceClient())
{
ServiceReference1.Person person = new ServiceReference1.Person();
person.Namek__BackingField = "";
person.Agek__BackingField = 100;
client.GetPersonInfo(person);
}
-------------------------------------------------------------------------------------------------
2. wcf 中使用的类去掉对 IDisposable 接口的继承
( 这样使用看着多顺眼啊!!哈哈)
wcf 项目中的 Person 类
[Serializable]
public class Person
{
public string Name { set; get; }
public int Age { set; get; }
public void Dispose()
{
}
}
其它web项目引用 wcf 后的 Person 类
using (ServiceReference1.NoteServiceClient client = new ServiceReference1.NoteServiceClient())
{
ServiceReference1.Person person = new ServiceReference1.Person();
person.Name = "";
person.Age = 100;
client.GetPersonInfo(person);
}
相关文章推荐
- 关于 webservice 或者 wcf 提供的方法,在引用后类属性后自动添加 k__BackingField 关键字的说明
- 自动解析复杂类的属性 实现归档或者进行序列化 反序列话的时候为每一个属性添加序列化方法的繁琐
- 关于static关键字以及静态方法和属性的说明
- jQuery EasyUI动态添加控件或者ajax加载页面后不能自动渲染问题的解决方法
- JavaScript原型和闭包之---为对象添加属性和方法以及in 、delete关键字(一)
- jQuery EasyUI动态添加控件或者ajax加载页面后不能自动渲染问题的解决方法
- 关于wcf添加服务引用失败,客户端与服务端不一致,415错误码
- jQuery EasyUI动态添加控件或者ajax加载页面后不能自动渲染问题的解决方法
- xtJS textField 关于验证(Regex)的一些属性说明
- 关于struts2中的addfielderror方法与校验的属性文件起作用的时间
- 关于添加引用维度时出现没有启用中间粒度属性层次结构的问题
- 关于WCF的引用,添加服务和添加web服务的区别
- Eclipse中setter/getter方法自动添加属性注释
- 调用WebAPI接口地址返回序列化的JSON对象中的属性都加了个k__BackingField关键字的解决办法
- jQuery EasyUI动态添加控件或者ajax加载页面后不能自动渲染问题的解决方法
- DEDECMS 全站关键字自动添加链接的方法
- 这是一个关于XML文档的操作管理器XMLHelper类,类中包括XML文档的创建,文档节点和属性的读取,添加,修改,删除的方法功能的实现
- 关于WCF的引用,添加服务和添加web服务的区别
- WCF客户端引用带有 int bool 类型的方法时,会自动加上一个Specified参数的 解决方法 Web Reference for a WCF Service has Extra “IdSpecified” Parameter -摘自网络
- 2018/01/08JAVA 基础 / 接口与继承/Java关键词:变量引用 super 调用父类对象方法/构造方法【或者访问父类对象属性】的方式归纳