代码之家  ›  专栏  ›  技术社区  ›  Karol Kolenda

Silverlight的duck打字库?

  •  2
  • Karol Kolenda  · 技术社区  · 16 年前

    有没有 duck typing Silverlight库?有一些是为全面的.NET框架,但我正在寻找一些更轻的东西。

    5 回复  |  直到 15 年前
        1
  •  3
  •   JustinAngel    15 年前

    通过要求“SilverlightDuck打字”,您是否指的是接口的强类型自动实现?或者通过使用对象实例动态创建对象元数据?

    如果是后者的话,安东尼的建议就是当务之急。 在clr(c和vb.net)上运行的强类型语言不能支持真正的动态duck类型。因此,您可以使用IronRuby或Ironpython作为SilverlightDLR项目的一部分。

    如果你在寻找前者,那么你就是在寻找一个模拟库。 Silverlight支持大量开源模拟框架。

    MOQ - http://code.google.com/p/moq/ (下载: http://moq.googlecode.com/files/Moq.Silverlight.4.0.812.4-bin.zip )

    鼻畸形 - 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 )

    型号:Mock/SilverUnit - http://cthru.codeplex.com (下载: http://cthru.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=27748#DownloadId=69201 )

        2
  •  3
  •   AnthonyWJones    16 年前

    您可以考虑使用基于DLR的语言,例如 Python in silverlight

        3
  •  2
  •   Marc Gravell    16 年前

    根据你对duck打字的理解,我希望这封信能在C 4.0版中收到,并且 dynamic ,当它在Silverlight上可用时。然后你可以选择哪一个是鸭式的( 动态 )与静态类型(其他所有类型)的比较。均在C以内。

    dynamic duck = /* pretty much anything */
    duck.Quack();
    
        4
  •  1
  •   Brian Genisio    16 年前

    我最近创建了一个我调用的实用程序 "DynamicWrapper" .它使用reflection.emit动态生成一个包装类来实现接口——这是一种在C中实现duck类型的方法。

    不幸的是,它在Silverlight中不起作用。它在.NET 3.5中非常有效,我的测试在我的SL环境中通过,但是在SL运行时,我得到了一个安全异常。

    我没有时间去弄清楚,但代码是非常直接的。也许这段代码能为你指明正确的方向?

        5
  •  0
  •   jbtule    15 年前

    ImpromptuInterface 支持Silverlight 4。它不仅允许duck输入静态实现,还允许动态实现。