Silverlight是否有duck typing库?有一些完整的.NET框架,但我正在寻找更轻松的东西。
答案 0 :(得分:3)
您可以考虑使用基于DLR的语言,例如Python in silverlight
答案 1 :(得分:3)
通过询问“Silverlight duck typing”你是指引用强类型的接口自动实现吗?或者通过使用对象实例动态创建对象元数据?
如果是后者,安东尼的推荐就是现货。 在CLR(C#和VB.NET)上运行的强类型语言不能支持真正的动态鸭子类型。因此,您可以使用IronRuby或IronPython作为Silverlight DLR项目的一部分。
如果你正在寻找前者,那么你就是在寻找一个模拟图书馆。 Silverlight支持无数的开源模拟框架。
Moq - http://code.google.com/p/moq/(下载:http://moq.googlecode.com/files/Moq.Silverlight.4.0.812.4-bin.zip)
RhinoMocks - http://ayende.com/projects/rhino-mocks.aspx(下载:http://ayende.com/20/section.aspx/download/230)
AutoFac - http://code.google.com/p/autofac/(下载:http://autofac.googlecode.com/files/Autofac-1.4.4.572-SL3.zip)
TypeMock / SilverUnit - http://cthru.codeplex.com(下载:http://cthru.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=27748#DownloadId=69201)
答案 2 :(得分:2)
根据您对鸭子类型的解释,我希望这可以在C#4.0和dynamic
中到达,当它在Silverlight上可用时。然后你可以选择选择鸭子类型(dynamic
)和静态类型(其他所有)。全部都在C#中。
dynamic duck = /* pretty much anything */
duck.Quack();
答案 3 :(得分:1)
我最近创建了一个名为"DynamicWrapper"的实用程序。它使用Reflection.Emit动态生成一个实现接口的包装类 - 一种在C#中实现duck typing的方法。
不幸的是,它在Silverlight中不起作用。它在.Net 3.5中工作得很好,我的测试在我的SL环境中传递,但在SL运行时,我得到了一个安全例外。
我没有时间弄明白,但代码很简单。也许这段代码可以指出你正确的方向?
答案 4 :(得分:0)
ImpromptuInterface支持Silverlight 4.它不仅允许鸭子打字静态实现,还允许动态实现。