.NET

SafeFileHandle

FileStream.Handle が Obsolete 属性が付いてた。 いつの間にって思ったけど2.0からかわったみたい。んで代わりに使用するのが SafeFileHandle。 http://msdn.microsoft.com/ja-jp/library/microsoft.win32.safehandles.safefilehandle.aspxこんなのあったん…

ドメインコンローラー内のオブジェクトを列挙

所属ドメコンで権限がある場合。 所属ドメコン内のオブジェクトを列挙。 参照設定:Com の「Active DS Type Library」と「System.DirectoryServices」が必要。 static void Main( string[] args ) { try { DirectoryEntry rootEntry = new DirectoryEntry( "…

構造体とインターフェイスとボクシング。

構造体にインターフェイスってあんまりやらなかったんだけど。 振る舞いに対してはつけるもんなんだな。でもそれを間違ってプロパティにしてしまうとボクシングも絡み嫌な感じに。 static void Main( string[] args ) { IA a = new A(); IA b = a; a.Bl = 1;…

.net でサービスインストーラーで必要な設定。

必要な設定が分散してるのでいろいろ迷う。なんで覚えてるうちにメモ。 サービスインストーラーの作り方。 サービスプロジェクト(A)を作る。 サービスのデザイナのプロパティ(もしくは右クリック)からインストーラーの追加を選択。 サービス用のインストー…

プロセスの使用リソースとかの確認。

死ぬほどめんどい。なんで WMI はスクリプトなんだ。インテリセンスきかねーじゃねーか。 というわけでいろいろ手抜き。してもめんどい。 /// <summary> /// ProcessResourceInfo クラス。 /// </summary> public class ProcessResourceInfo : IDisposable { private readonly i…

Serializerつくってみた。

というわけで Serializer つくってみた。 /// <summary> /// Serializer クラス。 /// </summary> public class Serializer<T> { public T Deserialize( string filePath ) { using (var stream = File.Open( filePath, FileMode.Open )) { using (XmlDictionaryReader reader = Xm</t>…

BinaryFormatterで大量データを扱うと例外が発生。

ある程度の大きさを持ったオブジェクトをシリアライズしてみた。 System.Runtime.Serialization.SerializationException:内部配列を Int32.MaxValue 要素を超えて展開することはできません。 えっ!?相変わらず意味不明のエラー吐きやがる。 途中まで作られ…

Excel Com オブジェクトの扱いがめんどくさい点。

なんか前にオープンするサンプル作ったんだけど。 あれでは開放が不十分らしい。 以下要点。 ReleaseComObject での開放が必要。 Excel.Range の開放も必要。 他 App, Books, Book, Sheets, Sheet も なんか全部ラップして本体は触らせないようにさせるくら…

Transaction 確認。

ちょっと話題に出た+忘れかけてたので再確認してみた。参考 トランザクション スコープを使用した暗黙的なトランザクションの実装 とか。 static void Main( string[] args ) { TranTest test = new TranTest(); test.TestExecute(); Console.WriteLine( "-…

Console WriteLine で色を変える。

そういや、xp あたりからエスケープシーケンスがデフォルトでは使えないんだっけ、とか思いつつ。 (NT以降の32BitのWindowsらしい)Console クラスは static だったので拡張できず残念。 出来るように言語拡張してくれないかな。 public static void ConsoleW…

.net でのエクセル読み込み

エクセルを読み込む。(未テスト)Openで全部の引数指定とかめんどいからクラス作ってみた。 ついでなんでちょっと機能拡張。まずは参照設定。 COM のタグから。 Microsoft Excel 11.0 Object Library WorkbookHelper /// <summary> /// ワークブックを簡易に扱えるラ</summary>…

弱い参照

キャッシュみたいな。ずっと持ってるとリソース的に負荷が高いものは弱い参照が有効。 static readonly Dictionary<string, WeakReference> _cache = new Dictionary<string, WeakReference>(); static object GetValue( string key ) { if ( !_cache.ContainsKey( key ) ) { _cache[key] = new WeakReferen</string,></string,>…

NTP64ビットタイムスタンプフォーマット

NTP 64ビットタイムスタンプフォーマットを DateTime に変換。 /// <summary> /// NTP 64ビットタイムスタンプ形式から DateTime に変換します。 /// </summary> /// <param name="ntpTimeStamp">NTP 64ビットタイムスタンプ。</param> /// <returns></returns> static private DateTime NtpTimeStampToDateTime( long ntpTimeStamp ) {…

読み取り専用配列を作るには。

ReadOnlyCollectionが有効。 public class ReadOnlyCollection<T> : ReadOnlyCollectionBase { public ReadOnlyCollection( IList<T> sourceList ) { InnerList.AddRange( (ICollection)sourceList ); } public T this[int index] { get { return (T)InnerList[ind</t></t>…

Shared Source Common Language Infrastructure 2.0

CLIのソース。 Shared Source Common Language Infrastructure 2.0 http://www.microsoft.com/downloads/details.aspx?FamilyID=8c09fd61-3f26-4555-ae17-3121b4f51d4d&DisplayLang=enこれなんだけど。VS2008ではこいつをそのまま動かせないわけで。 http://…

MTU 取得

送信パケットの最大サイズ。 http://msdn.microsoft.com/ja-jp/library/system.net.networkinformation.ipv4interfaceproperties.mtu.aspx要はパケットを送る際はこの値に注意ってことだな。 そこまで考えるシステムって限られるけど。受信は MRU というらし…

マネージDirectX

DLL 'C:\Windows\assembly\GAC\Microsoft.DirectX\1.0.2902.0__31bf3856ad364e35\Microsoft.DirectX.dll' は、OS ローダー ロック内でマネージ実行を試行しています。 DllMain またはイメージ初期化関数内でマネージ コードを実行しないでください。この動作…

デバッガでステップ実行をしない

確実に信頼できるコードはステップ実行で追ってくのがめんどい。 DebuggerStepThrough 属性を使用 [DebuggerStepThrough] void StepThrough() { // ステップ実行でもとまらない。 } いざ使うときに忘れるんだよな。

違うTicks

TimeSpan span = new TimeSpan( stopwatch.ElapsedTicks );値がおかしかった。Stopwatch.ElapsedTicks プロパティ メモ : Stopwatch タイマ刻みは、DateTime.Ticks とは異なります。DateTime.Ticks 値の各タイマ刻みは、100 ナノ秒間隔を表します。ElapsedTi…

disposeパターンコードスニペット

IDisposeよく使うけどいつも書くのめんどいので。 コードスニペットについては IntelliSense コード スニペットの作成と使用 あたり参照 <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title> Dispose pattern </Title> <Shortcut>dispose</Shortcut> </header></codesnippet></codesnippets>

ファイルがアセンブリであるかどうかを確認する。

ファイルがアセンブリであるかどうかを確認する。 >ファイルがアセンブリであるかどうかをプログラムによって確認するには >GetAssemblyName メソッドを呼び出し、テストするファイルの完全パスと名前を渡します。 >BadImageFormatException 例外がスローさ…

共有フォルダ一覧取得 WMI版

WMIで書き直してみた。ユーザ認証も含んでる。こっちのほうが断然短い。 /// <summary> /// 指定されたサーバの共有フォルダ一覧を取得します。 /// </summary> /// <param name="serverPaht">サーバ名。</param> /// <param name="user">接続ユーザ名。</param> /// <param name="password">接続パスワード。</param> /// <returns>取得された共有フォルダの一覧。</returns> public static List<string></string>…

デザインモードの判別方法。

デザインモード時は devenv.exe から呼び出されるアセンブリで判断。true でデザイン。(8.58) Assembly.GetCallingAssembly().GetType(this.GetType().ToString()) == null false でデザイン。(5.02 * 100) Assembly.GetCallingAssembly().GetTypes()[0].Equ…

.Net で標準出力をリダイレクト

ついでに using( MemoryStream ms = new MemoryStream() ) { using( StreamWriter sw = new StreamWriter( ms ) ) { Console.SetOut( sw ); // sw にリダイレクト Console.Write( "hoge" ); // 以下はおまけ sw 使って適当に。 sw.Flush(); ms.Position = 0;…

標準エラー出力

標準エラー出力に出力する。 Console.Error.WriteLine( "Error!!" ); Console.Error.Close(); Close は要るのだろうか。要らない気もするが。 でも、Cosole クラスでなくて Console.Error は TextWriter だからなー。

Entity Framework

Oracle で Entity Framework http://blogs.msdn.com/jkowalski/archive/2008/10/24/using-ef-oracle-sample-provider-with-edm-designer.aspxもうあるのかと思ったらまだサンプルだった。

WCF設定

client -> service設定とクラスの紐付き方■server の場合 クラス - service.name - service - endpoint(内包) service - service.behaviorConfiguration - behavior.name ■client の場合 クラス(サービス参照.interface) - endpoint.contract endpoint - e…

お手軽非同期

/// <summary> /// お手軽非同期 /// </summary> public class EasyAsync { /// <summary> /// 終了イベント /// </summary> static public event EventHandler Finished; /// <summary> /// 開始イベント /// </summary> static public event EventHandler Starting; /// <summary> /// 指定されたメソッドを非同期で実行します</summary>…

sandcastle

sandcastle コメントからドキュメント作成 http://blogs.msdn.com/sandcastle/default.aspx http://sandcastle.codeplex.com/ Sandcastle Help File Builder http://www.codeplex.com/SHFB

Plug-in

http://msdn.microsoft.com/en-us/vsx/bb980955.aspx http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.package(VS.80).aspx