.NET

Close() vs Dispose()

ここで Java の話を書いていたけど、.NET 界隈でも「SYSK 53: To Close() or to Dispose()? That is the question…」のような議論が昔からあったらしいということをさっき知った。GotDotNetの掲示板にも関連トピあり。つまりここで問題となっているのは、 メ…

Iteration Interruption の処理

「IEnumerator<T> を実装していれば必ず IDisposable である理由」は興味深かった。Java では Iterable / Closable がありますが、どうなんだろうと思ったら次のようなバグレポートを見つけました。 A DESCRIPTION OF THE REQUEST : Guarantee that if iterator</t>…

P/Invoke (Platform Invoke) などマーシャル属性を持つクラスにはジェネリック型を関連づけられない

これにも昨日からずっとハマってました。次のようなコードで再現します。 using System; using System.Runtime.InteropServices; public class Bar<T> { [DllImport("kernel32.dll")] public static extern void Beep(UInt32 freq, UInt32 duration); } public </t>…

Interop サービスを使って CLR 環境から PHP スクリプティングエンジンを呼び出す。

最近、いまさらですが C# にまともに取り組みはじめました。Interop サービスの痒いところに手が届き具合に「おー、すげえ」と感嘆の声をあげてばかりです。もはや、JNI が不幸でなりません。で、どうせならということで PHP の embed SAPI を使って C# から…

SxS (side-by-side) アセンブリと interop サービスの問題

追記: 一応原因が判明しました。こちらをご覧ください。.NET Framework 2.0 かそれ以前のバージョンで問題が発生するように見えます。どうも解決できない問題に遭遇。VC++ 2005 でビルドした DLL を System.Runtime.InteropServices の DllImport を使ってイ…