C#

NinjectでInterceptorをつかう

Inteceptorの機能はExtensionとして提供されています。ダウンロードはここからできます。 http://github.com/idavis/ninject.extensions.interception/downloads インターセプタの実装が2つ(Castle DynamicProxyとLinFu)あるのでどちらか版を選ぶといいと…

IntelliSenseに表示させないことで流れるインタフェースをより滑らかに

Ninjectのコードを読んでいて知りました。そういうことができるんですね。 /// <summary> /// A hack to hide methods defined on <see cref="System.Object"/> for IntelliSense /// on fluent interfaces. Credit to Daniel Cazzulino. /// </summary> [EditorBrowsable(EditorBrowsableState.Never)] pub…

Call Hierarchyが参照されている型でしか辿らないのは仕様?それともバグ?

C#

Visual Studio 2010 のbeta2を使っています。Call HierarchyはVisual Studio 2010から入った新機能なんですが、仕様なのかバグなのかわからない挙動があります。 class Program { static void Main(string[] args) { IHoge hoge = new Hoge(); hoge.Say(); }…

Entity Framework と LINQ to SQLのストアド呼び出し比較

C#

たいした比較じゃないですがちょっと気になったので.NET4で試しました。 ストアドプロシージャの定義。 CREATE PROCEDURE [dbo].[PROC_DTO_PARAM] @param1 int, @param2 int OUTPUT, @param3 int OUTPUT AS BEGIN SET @param2 = @param2 + @param1; SET @par…

Ninjectを使ってみた その3

インジェクションのタイプは、3つだそうです。 コンストラクタインジェクション プロパティインジェクション メソッドインジェクション バージョン1のころはフィールドインジェクションがあったようですが、バージョン2で廃止したそうです。C#やVB.NETの場合…

Ninjectを使ってみた その2

モジュールを動的に読み込めます。まず、Assemblyから。 [global::Microsoft.VisualStudio.TestTools.UnitTesting.TestMethod] public void Dynamic_module_loading_by_Assembly() { var kernel = new StandardKernel(); kernel.Load(AppDomain.CurrentDomai…

Ninjectを使ってみた

C#で書かれた軽量なDIコンテナNinjectをちょっとだけ使ってみました。GuiceのC#版のようです。最近バージョン2がリリースされたみたいですね。 サイト http://ninject.org/ 作者のブログ http://kohari.org/ あんまりドキュメントがないのが残念ですが、コー…