.NET

Generic型を動的に生成する方法

WCFを利用したサービスのバックグラウンドで動いてもらうフレームワークを作成するときに必要だったので調べてみると、System.Type型のメソッドにMakeGenricTypeという、そのままのメソッドがあってこれで作成できる事がわかりました。 そこで、ここではList…

Singleメソッドを使うことで単一の要素を返せる事を知った

LINQを使って書くときに結果が必ず1件になることが分かっているのに今まで var test = Enumerable.Range(1,10).Where(x => x == 5).Select(x => x); Console.Write(test[0]); とSelectメソッドを利用した上で、配列としてアクセスしていたが、MSDNを見て(と…

ジェネリック型とリフレクション

ジェネリック型の情報は、他の型の情報と同じ方法で取得します。つまり、ジェネリック型を表す Type オブジェクトをチェックすることによって取得します。原則の違いは、ジェネリック型の場合、ジェネリック型パラメータを表す Type オブジェクトのリストを…

.NET関連で困った時に調べる順番

.NET関連で困った時、昔は 1.Google 2.MSDN という順番だったのだが結局正しい情報として検索結果の中からMSDを選択することが多かったので、最近は 1.MSDN 2.Microsoftの開発者向け情報サイト(http://asp.net等) 2.Google という順番が多い。 そして、大抵1…

パズル:nまでの整数を二つの組に分けて合計した結果が同じだった2番目と3番目を出力する

問題:1からnまでの整数を二つの組に分けて合計した結果が同じだった2番目と3番目を出力する。 public void nまでの整数を二つの組に分けて合計した結果が同じだった2番目と3番目() { //Enumerable.Select().Sum()は使わない方向で Func<int, int, int> xからyまでの計 = (in</int,>…

超今更な話だけどGenericの型パラメータの制約は便利だ

最近、Genericを利用したクラスを作成する機会があった。 もともと、以下のような感じのGenericを利用していないクラスがあったのをGenericに対応した。 public abstract class ほにゃAbstract { public ほにゃAbstract() { } public abstract DataTable Tab…

ActiveReports For .NET2.0と3.0の共存について

全く問題なく共存できるんだけど、ActiveRpoerts For .NET 3.0をインストール後にVisualStudio2003で作成したActiveRpoerts For .NET 2.0を利用したプロジェクトのActiveReports.Webだけなぜか参照先が3.0になってしまう。 参照設定をやり直せばすぐ解決する…

Base64だったりQuoted-printableだったり

smtpClientクラスとMailMessageクラスでメールを送信する時のContent-Transfer-Encodingとsubjectのエンコードは、UTF-8の時、Base64なんだけど、 ISO-2022-JPの時は、quoted-printableになる。 せっかく、2.0からSubjectEncodingとBodyEncodingで文字コード…

VBのif文におけるAndとOrはいらない

AndAlsoとOrElseだけで良いのに。 というか、 AndAlsoとOrElseがいらなくて、AndとOrの挙動をAndAlsoとOrElseと同じにしてしまえばよいのに。 VBでコードを書いていてif文でAndとOrを利用したことが一度も無い。 コードレビューすると、特にいみなくAndとOr…

戯れにナベアツ問題の新しい応用編をLINQで作ってみた

くだらなくてすいません。 ナベアツのいつものネタの応用編に新しいものが追加されていた。3の倍数と3の数字がつくときにアホになって、5の倍数のとき犬っぽくなっていた。 5の倍数のとき犬っぽくなりますが、ついでに末尾が5のときは、ゴフッと吼える…

BlogEngine.NETのソースを見たりデバッグしたりしてトラックバック送信についてわかったこと

アンカータグが指定しているURLがhttp://で始まらない場合は、トラックバックの対象にならない。 ローカルに対してのトラックバックは対象外になるようになっているっぽい。 また、 URLが対象になったとしても、そのあと、実際にそのURLの先のページをゲット…

BlogEngine.NETでトラックバックを送受信できない。

仕様を見ても、ソースコードを見ても、コンテンツ中のURLから勝手にひろってトラックバックを送信してくれるはずなのだが、どうもうまくいかない。 うーん。もう一息。IISログ見る限りだとおくってるようだし、受けているようなんだけどなぁ・・・。

BlogEngine.NETでトラックバックを受信できない件について

送信については、なぜうまくいかないのかわからない。受信について、TrackbackHandlerのソースを読んでみた感じだと、どうも、設定でEnable trackbacksのReceiveをTrueにしていると、どうも404エラーにするようになっているみたい。 たぶん、本当は コメント…

GyaoのSilverlight採用が、着々と進んでいる

2007年11月より、GyaoではSilverlightを利用した動画配信サービスとしてGAGA USENの最新映画の予告編をまとめた映像配信を行なっており、MacintochでのGyaO視聴も含めた本格採用に向けて検討を進めるとしていた。なお、「新着STATION」はMacでも表示できるが…

.NET Framework2.0 SP1でIsNullOrEmptyの不具合が修正されている

940900 (http://support.microsoft.com/kb/940900/)FIX: .NET Framework 2.0 に基づいて構築されるアプリケーションで String.IsNullOrEmpty 関数を呼び出すとき、 NullReferenceException 例外が発生します。 2007/12/10にリリースノートが出ていました。 3…

.NET Framework 2.0のIsNullOrEmptyの不具合修正はSP1に含まれているのだろうか。

検証すればよいのですが・・・。 既にKB 940900でHOTFIXは出ていたのですが、SP1に含まれているのかな。 リリースノートが準備中なんですよね。勿論、3.5で対応という結論は知っているのですが、HOTFIXが出ていたので、どうかなと。

.NET Framework 3.5 と、.NET Framework 3.0および2.0 の関係

そしてこの .NET Framework 3.0 SP1 に、今回の新機能を実行するためのライブラリを合わせたものが、.NET Framework 3.5 ということになります。 .NET Framework 3.5 = .NET Framework 3.0 SP1 + DLINQ, AJAX, ... = (( .NET Framework 2.0 × Update ) + WPF…

拡張メソッドを使ってみる

拡張メソッドを使ってみたかったので、ちょっと遊んでみます。 以前、LINQを利用して、読みやすいコードを書くサンプルとして以下のようなコードを提示していました。 class 在庫計 { public int 数量計 { get; set; } public int 金額計 { get; set; } } pu…

LINQのGroupJoinを使ってみる

LINQに普通のJoinのほかにGroupJoinという機能がありますので、ちょっと使って遊んでみました。通常のJoinの場合 var 商品リスト = new[] { new { 商品番号 = "A", 商品名 = "鼻毛カッター" }, new { 商品番号 = "B", 商品名 = "安全ハサミ" }, new { 商品番…

ラムダ式と匿名型:VBとC#で出来ることの違い

C#は、式だけではなく、メソッドのように{}で囲った中にステートメントを書ける。 VBは、式だけしか書けない。 この違いは結構大きい。 匿名型に関していえば、 C#は、宣言時に初期化した内容を書き換えることができない。(ReadOnly) VBは、宣言時に初期化し…

CommandBuilderのConflictOptionについて

ConflictOptionをCompareRowVersionに指定しているとき、 テーブルにtimestamp(rowversion)列が存在するときは、主キー+timestamp列で、 テーブルにtimestamp(rowversion)列が存在しないときは、主キーのみ(overwriteChanges相当)で where句が生成される。 …

読みやすいコードのためにLINQを利用する。

最初に断っておきたいこと C#3.0の話です。 LINQやラムダ式自体の説明はしていません。 簡単なサンプルにするため仕様がシンプルで効果を感じられないかもしれませんが、 もしもっと複雑な仕様だったら等、想像してみてください。まず最初に、下記のサンプル…

try-finallyをはき出すスニペットについて。

try-catchを吐き出すスニペットが[try]であることに対して、 try-finallyを吐き出すスニペットは[tryf]である。 これが、 try-catchを吐き出すスニペットが[tryc]であることに対して、 try-finallyを吐き出すスニペットは[try]である。 だったら、もう少し無…

読みやすいコードを書くために匿名型を利用する。

最初に断っておきたいこと VB9の話です。 匿名型自体の説明はしていません。 最後になぜ今回はC#ではなくVBなのか説明します。 簡単なサンプルにするため仕様がシンプルで効果を感じられないかもしれませんが、 もしもっと複雑な仕様だったら等、想像してみ…

ラムダ式の=>演算子の読み方。(訂正しました)

ラムダ式の=>演算子(らむだえんざんし)をどう発音するのかわからなかったのですが、ちゃんとリファレンスに載ってました。 「goes to」と読むんですね。 ということで、 x => x + 1;はx goes to x plus one.と読むんだそうで、どうでもいいことですが・・・…

読みやすいコードを書くためにFunc型と匿名メソッドを利用する。

最初に断っておきたいこと C#3.0の話です。 Func型や匿名メソッド自体の説明はしていません。まず最初に、私が考える読みやすいコードの要素について断片的に提示します。 1.処理のスコープを最小にする。 2.今、読みたい粒度のコードしか読まなくても良…

Zipファイルの解凍で逡巡

Zipファイルの解凍をするのに、 .NET Framework3.0で提供されている System.IO.Packaging名前空間のZipPackageを利用しようとしたのだが、 package相当のZipファイル以外は、パブリックではないメンバであるZipArchiveに中の情報が入っているにも関わらず、P…

遅ればせながらWFを試してみた

本当に少しだけだけど、かじってみた。 試しに、鼻毛メソッドをシーケンシャルワークフローで実装してみた。 シーケンシャルワークフローは本当に簡単だなと思いつつ、IfElseアクティビティに名前を付けた上に、 Thenと Elseのそれぞれに名前を付けなくては…

.NET FRamework3.0 RTM

こちらのblogからです。 Robert McLaws: Windows Vista Edition : .NET Framework 3.0 WinFX RTMVistaのRTMよりも一足先に.NET Framework 3.0がRTMしたようです。 こちらからダウンロードすることができます。 もうちょっと先だと思っていました。

言われてみればSHA1を使わせない抑止力が欲しかった

欲しかった。 すべてはここから始まった??SHA-1の脆弱化 ?? @IT MD5/SHA-1は新規システムの開発では採用するべきではありません。 これらには既知の脆弱性が存在し、短時間でハッシュ値を重複させる攻撃が可能となっております。 同感です。 菊池さんのブロ…