私は、インターフェースで偽のオブジェクトを動的に作成する必要があります。この偽のオブジェクトのすべてのメソッドとプロパティは、単にNotImplementedExceptionをスローする必要があります。 .NETのリフレクションAPIだけで簡単に行う方法はありますか?インターフェースで偽のオブジェクトを作成する
答えて
城プロキシ実行時インタフェースのプロキシオブジェクトを生成するニートライブラリです。すべての主要なモッキングフレームワークでは、フードの下でCastle Proxiesも使用されます。
学習曲線はMoqのようなものを使用するよりも急ですが、Moqは単体テスト専用に設計されているため、あなたのニーズに適しています。そのため、APIは、後で。
キャッスルプロキシーがうまく動作しているようです。ありがとう。 –
Moqなどの模擬APIを使用できます。単体テストを模倣するように設計されていますが、必要な作業を行う必要があります。
唯一の解決策はReflection.Emitを使用することです。それは非常に単純ではありません:) C# Reflection: Emitting classes to existing assembliesまたはReflection Emitを参照してください。
Moq(別の回答で示唆されているように)はReflection.Emitを使用しているライブラリなので簡単な解決策です! – bang
ImpromptuInterfaceが役に立ちます。
(そのホームページからコピーされた)サンプルコードは、次のとおり
using ImpromptuInterface;
using ImpromptuInterface.Dynamic;
public interface IMyInterface{
string Prop1 { get; }
long Prop2 { get; }
Guid Prop3 { get; }
bool Meth1(int x);
}
//Anonymous Class
var anon = new {
Prop1 = "Test",
Prop2 = 42L,
Prop3 = Guid.NewGuid(),
Meth1 = Return<bool>.Arguments<int>(it => it > 5)
}
IMyInterface myInterface = anon.ActLike<IMyInterface>();
- 1. 検索インターフェースを作成する - android
- 2. FakeItEasyクラスの偽物を作成する
- 3. 偽のステータスバー情報を作成する
- 4. 偽のQNetworkAccessManagerを作成するには
- 5. 偽のファイルハンドルの作成
- 6. Django:管理インターフェースでフィールドを偽っていますか?
- 7. Javaオブジェクト、インターフェース
- 8. オブジェクトを偽装する
- 9. Pythonで偽のテキストファイルを作成するには
- 10. JPAで偽の述語を作成する方法
- 11. htaccessの偽のフォルダ作成の挑戦
- 12. CKEditorカスタムプラグイン用の偽の画像を作成する
- 13. 角の丸い偽のタブを作成するには?
- 14. のEclipse - EJBプロジェクト - EclipseでEJBプロジェクトの作成時にインターフェース
- 15. C++でオブジェクトのコピーを作成する
- 16. Mac OSでこのようなインターフェースを作成する方法は?
- 17. rubyでオブジェクト(クラス)で作成されたオブジェクト(クラス)を作成するには?
- 18. getJSONオブジェクトを作成する
- 19. ABPersonオブジェクトを作成する
- 20. オブジェクトを作成するPython
- 21. Javaで複数のオブジェクトを返すオブジェクトを作成する
- 22. シングルトンクラスで 'Player'オブジェクトを作成する
- 23. MongoDBでオブジェクトを作成する方法
- 24. JavaScriptで動的オブジェクトを作成する
- 25. Javaでオブジェクトを作成する
- 26. Javascriptで動的オブジェクトを作成する
- 27. MEFでオブジェクトを作成する方法
- 28. foreachループでオブジェクトを作成する
- 29. ggplot2でカスタムStatオブジェクトを作成する
- 30. tsオブジェクトをRで作成する
モックライブラリを使用する必要があるようです。なぜあなたはNotImplementedExceptionを持つクラスを持つ必要がありますか?おそらく、モックを使用するよりも優れた解決策があります。 – Archeg
私は、インターフェイスとそのインターフェイスを実装するクラスを含むアセンブリでいっぱいのフォルダを持つ1つのアセンブリを持っています。したがって、アプリケーションの起動時に、このフォルダをスキャンし、すべてのインターフェイスをCastle IoCコンテナに実装して登録しています。しかし、いくつかの実装が欠落しているので、実行時に欠落しているものがあることを私に知らせるために例外をスローする偽のクラスを生成する必要があります。本当に大きなアプリケーションなので、これらの偽のクラスを手動で作成したくありません。 –