2

Silverlight用のダックタイピングライブラリはありますか?本格的な.NETFrameworkにはいくつかありますが、もっと軽いものを探しています。

4

5 に答える 5

3

Silverlight で Python のような DLR ベースの言語を使用することを検討してください。

于 2009-09-28T09:36:10.760 に答える
3

「Silverlight ダック タイピング」とは、厳密に型指定されたインターフェイスの自動実装を指しているのでしょうか。それとも、オブジェクト インスタンスを使用したオブジェクト メタデータの動的作成ですか?

後者の場合、アンソニーの推奨事項は的を射ています。CLR (C# および VB.NET) で実行される厳密に型指定された言語は、真の動的ダック タイピングをサポートできません。したがって、Silverlight DLR プロジェクトの一部として出荷される IronRuby または IronPython を使用できます。

前者を探している場合は、基本的にモック ライブラリを探しています。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 )

于 2009-09-28T10:40:03.230 に答える
2

ダックタイピングの解釈にもよりますが、これが C# 4.0 にdynamic搭載され、Silverlight で利用可能になったときに期待しています。dynamic次に、ダック型 ( ) と静的型 (その他すべて)のビットを選択できます。すべて C# 内です。

dynamic duck = /* pretty much anything */
duck.Quack();
于 2009-09-28T11:11:20.280 に答える
1

最近、 「DynamicWrapper」と呼ぶユーティリティを作成しました。Reflection.Emit を使用して、インターフェイスを実装するラッパー クラスをオンザフライで生成します。これは、C# でダック タイピングを実現する方法です。

残念ながら、Silverlight では機能しません。.Net 3.5 では非常にうまく機能し、SL 環境ではテストに合格しましたが、SL ランタイムではセキュリティ例外が発生します。

私はそれを理解する時間がありませんでしたが、コードは非常に単純です。たぶん、このコードはあなたを正しい方向に向けることができますか?

于 2009-09-29T02:05:34.073 に答える
0

ImpromptuInterfaceは Silverlight 4 をサポートしています。ダック タイピングの静的実装だけでなく、動的実装も可能です。

于 2011-03-14T20:57:03.910 に答える