c# – 具有空访问者的属性
虽然我当然熟悉自动属性,但我在工作中遇到过这个问题,这似乎是一个截然不同的野兽:
public SomeType SomeProp { get { return someField; } set { } } 我很惊讶它甚至编译,我想它一定是一个bug:该属性似乎允许设置,但这样做绝对没有. 这个结构有用吗?电梯中的那些“关门”按钮是不是做了什么,但让用户感觉良好? 解决方法
当结果需要在Web服务中序列化或使用XML或二进制序列化程序时,您经常会看到这种情况.
这是懒惰和草率,但它经常发生.这使对象具有属性可设置的“外观”.如果它是为了实现一个接口并允许编译,那么执行它的开发人员需要被一个直接的对象殴打头部和肩膀,因为他刚刚打破了界面.如果存在无法实现的正当理由,则开发人员需要将其重新提交给架构师进行审核.实现接口时,不要只留下空的存根方法.如果您目前没有为实现定义的技术,那么至少抛出一个新的NotImplementedException,以便单元测试能够捕获它. 就序列化而言:ReadOnly属性不会包含在常规序列化中,并且可能使该属性对Web服务客户端不可用. (参考:Read-Only Properties Cannot Be Exposed by XML Web Services.)这是我们都应该转向WCF和DataContracts的原因之一.如果您通过WCF接受此类作为方法的输入类型,则再次检索钝对象. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |