鷲ノ巣

C# とか PowerShell とか。当ブログの記事は(特に公開直後は)頻繁に改定される場合があることをご了承ください。

C#

UnsafeAccessorAttribute 完全理解

.NET 8 から UnsafeAccessorAttribute というのが登場しました。 learn.microsoft.com これは、他のクラスの非公開メンバーにアクセスできてしまうという掟破りの機能です。 これまでもリフレクションを使えば出来たのですが、より簡便かつハイパフォーマン…

Directory.EnumerateFiles メソッドの予期しない挙動について

C# で、あるディレクトリ内のファイルを検索するために、Directory.EnumerateFiles メソッドを使うことができます。 このメソッド、なかなか罠があります。

.NET のオプション機能を完全に理解した。

この記事は以下の記事に対するリベンジです。 tech.blog.aerie.jp

ダメなコードの書き方 (ex. ASP.NET Core ミドルウェアの非同期初期化)

はじめに 本記事は C# Advent Calendar 2021 その2の 18 日目の記事です。qiita.comなお、記事を書きながら反省したのですが、以下に掲載するサンプルコードは、いいところがほとんどありません。真似しないでください。 実装しちゃったコードは週明けに直…

Improvement Interpolated Strings 完全に理解した

C#

2021年11月リリース予定と思われる C# 10.0 に搭載予定の機能の一つである「Improvement Interpolated Strings」について、完全に理解したので記事にしてみます。

ASP.NET Core でマルチパートのリクエストを読む

経緯 お仕事で作っている Web API で multipart/mixed なリクエストを読むっていう仕様の機能を作ったんですけど、何故かリクエストを読もうとすると謎のエラーになる。なぜ? というわけで調べたメモです。

非同期プロバイダー的なもの

本記事は PowerShell Advent Calendar 2020 の一日目の記事です。 例によって 12 月 2 日になってから書いていますが、気にしない。 また? 俺はいったい AsyncCmdlet を何回書いてるんだ…— あえとす⛩️ (@aetos382) 2017年12月25日 まぁ、そういうことです。…

TypeAdapter を作る

はじめに 本記事は PowerShell Advent Calendar 2018 の 11 日目です。 PowerShell Advent Calendar 2018 は寄稿して頂ける方を絶賛募集中です。よろしくお願いいたします。 qiita.com

最近作ってる PowerShell 関係のライブラリについて

はじめに 本記事は PowerShell Advent Claendar 2018 の一日目です。 今年は立てるのが遅かったためか、まだスッカスカです。 皆さんの寄稿をお待ちしております!qiita.com

.NET Core 汎用ホストとフォアグラウンド サービス

なんか作りました。README を見てくだしあ。github.com

イテレーターについて考えた。

ふと、こんなことを考えた。うーむ、C++ のイテレータが C# にも欲しくなってきた。— アエトス・トリスメギストス (@aetos382) 2017年12月27日 そこから始まる、イテレーターについての考察。

C# の文字リテラル

C#

C# で文字(列)リテラルを、Unicode のコード ポイントで表現したい場合、いくつかの書き方があるので注意が必要です。 正直、わかりにくいです。

C# で書いた PSCmdlet のテスト

たまにはどとねとな話題(と言っても PowerShell ですけど)を書かねば。あ、あの連載とかあの連載とかも終わったわけではないので続きはいずれ書きます。ええ。

LINQ で動的に OR 検索するやつ

C#

Entity Framework なんかを使っていて、データを検索したいとき。 検索フォームからユーザーに検索条件を入力してもらって、それで OR 検索をしたいとなると、ちょっと面倒です。 もちろん、何も入力しなかった項目ではフィルタリングを行いません。AND 検索…

async/await と SynchronizationContext (2)

前回は SynchronizationContext の説明だけで async/await に絡んだ話が出来ませんでした。 今回はその続きになります。まずは復習。 以前の記事で詳しくやりましたが、async/await は、以下のような特徴を持つ非同期処理の方式です。 コード上に明示的にコ…

async/await と SynchronizationContext (1)

前回の記事に続き、非同期処理シリーズの第 2 弾。 今回は SynchronizationContext について。SynchronizationContext は、.NET Framework 2.0 から登場したクラスです。「同期コンテキスト」と訳される場合もあります。 これが何かと言うと、誤解を恐れずに…

ASP.NET 5 で Azure API App

ASP.NET 5 はまだプレビュー、Azure API App もプレビューなので、Visual Studio にはそれらを組み合わせたプロジェクト テンプレートが用意されていません。 今回、いくつかのエラーに阻まれながらも、試行錯誤して、なんとか動かすことができたので、手順…

いまさら async/await

VS 2015 もリリースされて、C# 6.0 が使えるようになった今頃になって、C# 5.0 の新機能の話というのも時機を逸してますが、まぁいいじゃない。 というわけで、今のところ最も新しい非同期処理のお話です。

【保存版】構造体のマーシャリングのまとめ

P/Invoke で Windows API を呼び出す際、引数に構造体を渡すには、割と色々な方法があります。 最近ちょっと混乱したので、改めてまとめてみました。 これまで知らなかった便利な方法も紹介しています。 新機能でも何でもありませんが、よく P/Invoke を使わ…

PowerShell コマンドを C# で書くときに便利な拡張メソッド

たまにはね、会社ブログの報告ばかりじゃなくて、自前の記事も書きましょうね。 リハビリというわけじゃないですが、軽めの記事をひとつ。 よくある話 PowerShell Cmdlet で、あるパラメーターが指定されているかどうかで処理を分けることはよくあります。 …