.NET
普通にバッファサイズをおもいっきりとって一回読むのでもいいのかなー public static byte[] GetData( this Stream input, int size ) { byte[] buffer = new byte[Math.Min( 1024, size )]; int totalSize = 0; using ( MemoryStream ms = new MemoryStrea…
File.Copyはあるのに! Static Classも拡張メソッドできたらDirectoryに突っ込みたい単純なCopyではなくて、複製?overwriteがtrueなら新しいファイルで上書き。こっちが古かったら上書きされる。CopyDirectoriesだけなら一方向そういえばWindows的にはFolde…
あるオブジェクトのプロパティを文字列で指定して呼び出す拡張メソッド。 public static dynamic GetDynamicMember<T1>(this T1 target, string memberName) { if (target == null) { throw new NullReferenceException(); } var binder = Binder.GetMember(CSha</t1>…
jsoupの.net版http://nsoup.codeplex.com/ スクレイピングするときに便利
http://stackoverflow.com/questions/254129/how-to-i-display-a-sort-arrow-in-the-header-of-a-list-view-column-using-c?answertab=votes#tab-topまだWinFormなんだが
winpcap http://www.winpcap.org/SharpPcap http://sourceforge.net/projects/sharppcap/その他参考 http://sharppcap.sourceforge.net/htmldocs/index.html http://www.tamirgal.com/blog/page/SharpPcap.aspx http://sharppcap.git.sourceforge.net/git/gi…
Dictionry.Constantsでラムダ受け付けてほしい IEqualityComparerとかめんどい - Memo+を拡張メソッドに改変 /// <summary> /// ラムダ式を受け付けるIEqualityComparerの実装を提供します。 /// </summary> /// <typeparam name="T">比較するオブジェクトの型。</typeparam> static public class LambdaComparer…
認証局信頼されていない自己証明書では↓の例外が出るSSL/TLS のセキュリティで保護されているチャネルに対する信頼関係を確立できませんでした ---> System.Security.Authentication.AuthenticationException: 検証プロシージャによると、リモート証明書は無…
windows fromなんてオワコンデフォルトで出来なかったんだっけtextBoxのKeydownイベントに登録 private void Form1_Load( object sender, EventArgs e ) { textBox1.KeyDown += ( eventSender, eventE ) => { if ( eventE.Control && eventE.KeyCode == Keys…
.netはメモリーリークがないというのは都市伝説 やっぱり一番ネックになるのはイベントかなーなどと思っていたらWPFではこんなの使ってるのか弱いイベント パターン | Microsoft Docsやっぱりコード書かないとついていけないな
TreeViewをxmlファイルとしてエクスポート public static void ExportToXml(TreeView tv, string filename) { var doc = new XmlDocument(); doc.CreateXmlDeclaration("1.0", "utf-8", null); foreach (TreeNode node in tv.Nodes) { var element = doc.Cre…
いまいち使いどころがわからないSecureString メモリ上にずっとパスワードを保持しないといけない場合に使うのだろうか。でもstringに変換しないと使えない(他のIFへパスワードを渡す)場合は意味あるの? とりあえず使い終わったstringには空文字でも入れ…
いままでURLデコード、エンコードはHttpUtilityを使ってたんだけど windowsアプリの場合で.net 4.0だとデフォルトではclient profileしか入らないのでHttpUtilityがつかえないことがわかった。んで、代わりに使うのは Uri.UnescapeDataString(デコード)Uri…
以前圧縮について書いたけど、Explorerのzip機能を使うのがwindowsでは一番なのかもしれない。 ただし、Explorerの機能なんで上書きとかで問い合わせは発生する。解凍 Shell.Applicationを利用する。 static class ObjectExtentions { public static object …
設定ファイルを作成。 <configuration> <system.diagnostics> <trace> <listeners> <add name="debugListener" type="System.Diagnostics.ConsoleTraceListener" /> </listeners> </trace> </system.diagnostics> </configuration> こういうのって普通設定ファイルじゃないの?コンソールでなくてファイルなら
System.Windows.Threading.Dispatcher http://msdn.microsoft.com/ja-jp/magazine/cc163328.aspxtodo
arrayはすでにカラの配列をセットしてあること。 T[] IntPtrToArray<T>(IntPtr ptr, T[] array ) { for ( int i = 0; i < array.Length; i++ ) { array[i] = (T)Marshal.PtrToStructure( ptr, typeof( T ) ); ptr = (IntPtr)( (int)ptr + Marshal.SizeOf( typeo</t>…
なぜ廃止なのかよくわからない。間違った使い方する人がいたから? どうしてもWinApi使うなら必要な場面があるじゃないか。 WinApi使うならWinApiで完結しろってことなのかはよくわからないけど。もっと古い形式を使うか.netで完結させたい場合は Process.Ge…
何で比較してるのかよくわからんけど同じプロセスでも取得タイミングでハッシュコードが変わる。Idと名前が一緒くらいでいいじゃん。 var deleteProcesses = lastProcesses.Except( currentProcesses , new LambdaComparer<Process>( ( v1, v2 ) => v1.Id == v2.Id &&</process>…
Linqでの差分抽出しようと思ったら え、クラス作らなきゃいけないの?匿名クラスでIF継承とか思ったけどやっぱりそんなものなかった。で、調べてみたら似たようなことをやっぱり思ったひとがいて汎用的なクラス作ってた。 http://brendan.enrick.com/post/li…
CodePlex ArchiveUsing type dynamic - C# Programming Guide | Microsoft DocsJavaScriptSerializer Class (System.Web.Script.Serialization) | Microsoft Docs
指定したタグ以外を取り除く Regex reg = new Regex( "</?(?!table|link|p|br|tr|th|td|a{1}(?!\\w+))\\w+(\\s+.*?)?>", RegexOptions.IgnoreCase | RegexOptions.Singleline | RegexOptions.Compiled );
なぜMicrosoftは.netでzip圧縮のサポートをしないのかよくわからないけど。標準(?)で使えるのもを幾つか。 ZipPackage ただ、これは本来のzip圧縮とは少々異なり実用には耐えられない。 変なファイルが出来るとか、圧縮率が悪いとか。暗号化とか。 using ( v…
フリー的な意味で といってもReflectorのv6.8は今後も使えるらしいが。代わりに使えるのがJustDecompile http://www.telerik.com/products/decompiling.aspx
Assembly.GetEntryAssembly().GetName().Version AssemblyNameって微妙だよな
[DllImport("kernel32")] static extern bool AllocConsole();
環境によっては化ける時があったらエンコードを指定すればok。 Console.OutputEncoding で解決。 Console.WriteLine("ああああ"); // ???? Console.OutputEncoding = Encoding.UTF8; Console.WriteLine("ああああ"); // ああああ
DirectorySearcher.PageSizeを増やす。デフォルトは0。 DirectorySearcher.SizeLimitは増やしたところで最高値はサーバーの設定が優先される。デフォルトは0。サーバーのデフォルトが1000。
VS2008ではアドインのPInvoke.net使えなかったんで。 P/Invoke Interop Assistant http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=14120 結構いいね。 ネットならpinvoke.net http://www.pinvoke.net/
マネージオブジェクトからIntPtrに変換 GCHandle gch = GCHandle.Alloc( targetObject, GCHandleType.Pinned ); IntPtr ptr = gch.AddrOfPinnedObject();配列からIntPtrに変換 Marshal.UnsafeAddrOfPinnedArrayElement( targetArray, 0 );これで先頭ポインタ…