加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

接受具有公共属性的多个对象的C#方法?

发布时间:2020-12-15 20:00:07 所属栏目:百科 来源:网络整理
导读:我有几个具有一些属性的对象,这些属性对所有属性都是通用的.例如: 对象A是X类型,它有10个属性 对象B的类型为Y,它有15个属性 对象C的类型为Z,它有7个属性 所有这些对象都具有共同的“名称”,“签名”和“校验和”属性.我正在尝试创建一个静态帮助器方法,该方
我有几个具有一些属性的对象,这些属性对所有属性都是通用的.例如:

对象A是X类型,它有10个属性

对象B的类型为Y,它有15个属性

对象C的类型为Z,它有7个属性

所有这些对象都具有共同的“名称”,“签名”和“校验和”属性.我正在尝试创建一个静态帮助器方法,该方法可以接受包含“name”,“signature”和“checksum”属性的任何类型的对象.这是可能的还是我实际上需要三种不同的方法(一种接受每种类型的对象)?

编辑 – 为了它的价值,我没有提到这些对象是通过Web服务向我公开的.

解决方法

我将假设由于这些obejcts是通过Web服务公开的,因此您无法控制对象的定义.它们就是它们,你不能让它们从公共基类或接口继承.有了这个问题的约束,你真的只有两个选择.

如果您使用的是C#4.0或更高版本,则可以使用新的动态类型.这基本上是一个对象引用,直到运行时才进行任何类型的评估.因此,如果您在动态类型上使用的属性或方法不存在,您将在compliation期间获得运行时错误而不是错误.

另一个otpion将简单地引用类型Object并使用反射来操作属性和方法.那里有很多潜在的丑陋.

我不使用C#4然后我想我会采用三种单独的方法.虽然您可能会复制一些代码,但我宁愿拥有这些代码而不是一堆复杂的难以跟踪的反射调用,您必须在c#3.5中使用它们.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读