C#

HttpListenerを使うときに「アクセスが拒否されました」と怒られる話

C#

解決策としては、アプリケーションを管理者権限で起動するか、netshで穴を開ける。後者しか知らなかった。 名前空間予約では、HTTP URL 名前空間の一部に対する権限を特定のユーザー グループに割り当てます。 予約によって、名前空間のその部分でリッスンす…

数値・文字(列)リテラルなしでHelloWorld

C#

CodeIQで[twitter:@cielavenir]さんの問題を解いてみました。 https://codeiq.jp/ace/cielavenir/q431 using System; using System.Collections; using System.Linq; static class Program { static void Main(string[] args) { Console.Write(new[]{ H<Hashtable>(), L<EventArgs></eventargs></hashtable>…

列挙型の継承とかTypeSafeEnumとか

C#

やりたいこと #define WM_CLOSE 0xnnn #define WM_QUIT 0xnnnn #define WM_USER 0xnnnn // hoge.h #include <windows.h> #define WM_HOGE (WM_USER+1) みたいことをC#でやろうと思うと enum Message { Close, Quit } enum MyMessage : Message { Hoge } できません。 こ</windows.h>…

ClientSizeに大きすぎる値を設定すると

どうしてこう妙な壁にぶち当たってばかりなのか。粗探ししたいわけじゃないのにー。 FormsのFormクラスにはSizeプロパティとClientSizeプロパティがあります。どちらも設定可能です。 ある日、こんなコードを書いていました。 this.ClientSize = Madoka.Size…

GDIとGDI+でRECT構造体のメンバが意味だけ違う件

微妙に統一されてなくて泣いた。 Forms/SlimDXの場合(System.Drawing.Rectangle) public Rectangle (int x, int y, int width, int height) WPFの場合(System.Windows.Rect) public Rect(double x, double y, double width, double height) SharpDXの場…

stringとobjectを+演算子で連結できたらしい

C#

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

ServiceStackで埋め込みリソースのMarkdownをレンダリング

C#

オープンソースのWebサービスフレームワークServiceStack。初めてこの手のフレームワークを触ることもあって楽しいのだけど、日本語の情報がとにかく少ない。 このフレームワークはMarkdownとRazorに対応していて、下位ディレクトリにcshtmlだのmdだの置いて…

MemoryStreamをバッファにしてメモリリークするところでした

C#

Socketから流れてくるデータをあるバイト列で分割して処理するために、読み取りブロックを超えるデータを保持しておくバッファを設けたんですね。 byte[] buf = new byte[256]; MemoryStream s = new MemoryStream(); ... //とりあえず受信したデータを積ん…

StreamWriter.DisposeさんStream閉じないでください。

C#

Case 1 TCPを使ったとあるメッセージングプロトコル向けにSocketをラップしたいのです。 Streamを使い回してWriterを公開メソッド内で生成することを思いつきました。 private NetworkStram stream; void Send(string str) { using (var writer = new Stream…

CodeContracts使ってみた

C#

契約プログラミングを.NETで実践するためのフレームワークです。 詳しいことはググってもらうとして、「このメソッドはこの範囲の値を指定しなさい」とか「このメソッドはこういう値を返しますよ」とか「このフィールドはいつもこういう状態ですよ」といった…

Entity FrameworkとSQLiteとAUTOINCREMENT

C#

本当はCodeFirstしたかったんだけど難しそうなので後回し。 Entity Data Modelデザイナを使えばおおかた簡単にできます。 AUTOINCREMENTキーワード 主キーには連番を使うことが多いですが、SQLiteにもそれを助ける機能が備わっています。 SQLiteにはAUTOINCR…

TLBのないコンポーネントvsCOM相互運用

C#

「ねーねーWindowsMediaFormatSDKをC#で使いたいんだけどー」 既に立派なライブラリ*1があるのでこれを使えばいいんだと思います。はい。 ですがせっかくなので練習も兼ねて自分でラップしてみることにしました。 通常タイプライブラリが用意されていればTlb…

SQLiteでEFの一対多アソシエーション、ついでにDBNull、それと和布蕪

C#

EntityFrameworkではデータベースからモデルを構築できるのでSQLServer等ではアソシエーションも読み込めるようです。が、SQLiteにリレーションシップを管理する機能はありません。 で、何も考えずにツールボックスからアソシエーションを選択して張ってみる…

SgmlReaderをXmlReaderとして使ったらバグ踏んだらしい

C#

hrで区切る構造のHTMLを処理しようと思い、せっかくなのでXmlReaderを直接使うことにしました。 ただそのまま流したらひどいことになるのでSgmlReaderを通したわけですが・・・ using(var reader = new SgmlReader{ Href = "http://.../hoge.html" }) { whil…

セミコロンを使わずにFizzBuzzが書きたーい!!(某Eテレ風に)

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

C#の識別子

C#

明日使えるC#のムダ知識。 Unicodeなんで日本語使えますよ 例 http://ideone.com/UKB39 http://twitpic.com/4oe6nf Unicodeを使うとなると、どの文字が使えてどの文字が使えないのかがわかりにくいですが、文字クラス単位できちんと決められています。*1 感…