【发布时间】:2010-12-30 17:27:08
【问题描述】:
众所周知,C# 3.5 中有一个新概念,即匿名类型。如何创建实现一个接口的匿名类型。实际上,在为我的组件编写 UT 并提高线路覆盖率时,我需要这个。
请帮我解决这个问题。
【问题讨论】:
-
匿名类型不能实现接口。你想达到什么目的?基本要求是什么?
标签: c#
众所周知,C# 3.5 中有一个新概念,即匿名类型。如何创建实现一个接口的匿名类型。实际上,在为我的组件编写 UT 并提高线路覆盖率时,我需要这个。
请帮我解决这个问题。
【问题讨论】:
标签: c#
C# 不支持创建实现接口的匿名类型。来自MSDN:
匿名类型是类类型 由一个或多个公众组成 只读属性。没有其他种类 类成员,例如方法或 事件是允许的。匿名类型 不能转换为任何接口或 除对象外的类型。
您可能应该定义一个新的具体类型而不是使用匿名类型,以便您可以实现所需的接口。
【讨论】:
听起来您正在寻找类似 MOQ 的模拟框架:http://code.google.com/p/moq/
它不利用匿名类型 - 这些是非常不同的 java 版本
【讨论】:
不可能让匿名类型实现接口。由于匿名类型仅是数据,因此您似乎想对我实现一个仅数据接口。我确实认为这是一个糟糕的设计。你应该创建一个 DTO(Data-Transfer-Object,一个只有数据的类)。
但是,如果你确实需要匿名类型来实现接口,请使用duck-typing
【讨论】: