Unityコンテナの基本:サービス登録、解決、ライフタイム管理
IOCとDIの概要
IOC(Inversion of Control)とは、プログラムの上位層が下位層への依存を、第三者のコンテナに組み立てるために移すことです。これはプログラム設計の目標であり、実現方法には依存性注入(Dependency Injection)と依存性検索(Dependency Lookup)が含まれます(.NETでは依存性注入のみがサポートされています)。DI(Dependency Injection)は、IOCの実 ...
6月22日 22:59 投稿
C#におけるGDI+グラフィックスプログラミング
Graphicsクラスの概要
GDI+はGDI(Windowsグラフィックデバイスインターフェース)を進化させたものであり、.NET Frameworkがグラフィック操作のために提供するアプリケーションプログラミングインターフェースです。主にフォーム上でのさまざまなグラフィックや画像の描画に利用され、データビジュアライゼーションや数値シミュレーションなどの用途に適しています。
Gr ...
6月20日 22:54 投稿
依存性注入パターンの実装
DIパターン
依存性注入を実装する主要なパターンとして、Composition Root、Constructor Injection、Method Injection、Property Injectionの4つが存在する。各パターンは特定のコンテキストで効果的に機能する。
Composition Root
オブジェクトグラフの構築をアプリケーションエントリポイント近くに集中させる設計手法。複数モジュールから構成されるシステムでは、オブ ...
6月16日 16:05 投稿
C#におけるジェネリックの基礎と応用
ジェネリックの概要
ジェネリックは、異なるデータ型に対して共通のコード構造を提供する機能です。これにより、型安全性を保ちながら再利用可能なコンポーネントを作成できます。
public class StackContainer<T>
{
private int position = 0;
private T[] elements;
public void AddElement(T item) { ... }
public T RemoveElement() { ... ...
6月15日 21:46 投稿
C#における外部OCR APIを活用したキャプチャ画像の自動認識実装
サードパーティCAPTCHA認識サービスのC#統合ガイド
Web自動化やテストフレームワークにおいて、手動介入を避けながらCAPTCHA画像を解読する必要がある場面は少なくありません。サードパーティのOCR/CAPTCHA解読プラットフォームのAPIをC#から呼び出すことで、画像送信からテキスト抽出までのフローをプログラム内で完結させられます。本稿では、JSONリクエスト方式とフォー ...
6月11日 16:48 投稿
Web ADF基盤における地理空間データ型の変換処理
Webアプリケーション開発フレームワーク(Web ADF)は、複数のデータソースと通信階層を跨いで動作するため、クライアント画面の座標情報、サーバー側のジオメトリ形式、COMオブジェクト間でのデータ受け渡しに頻繁な型変換が要求されます。各階層やデータソースは独自の実装を持ち独立して動作するため、Web ADFの開発者はそれらを統合する役割を担い、適切なコンバーター ...
6月9日 21:53 投稿
C#による中心起点型素数螺旋プロットの生成アルゴリズム
中心座標を原点とする二次元平面に自然数を螺旋状に展開し、素数の位置を可視化する処理を実装する際には、座標軌跡の制御ロジックと効率的な素数判定が鍵となります。以下に、標準ライブラリのみを使用して記述された実装例を示します。
素数判定の基礎となる関数は、試行除算を最適化しています。偶数および3の倍数を早期に除外し、5を起点として6刻みで剰余演算を行うこ ...
6月2日 16:44 投稿
C#における低レベルネットワーク通信の実装:TCPとUDPのSocketプログラミング
Socketは、オペレーティングシステムが提供するネットワーク通信の基本的な抽象化インターフェースです。Unix系OSではファイル記述子として扱われるこの機構は、Windowsおよび.NET環境でも同様に、ネットワークI/Oをカプセル化した柔軟なアクセス手段として機能します。C#ではSystem.Net.Sockets名前空間を通じて、IPアドレス、ポート、プロトコルなどのネットワーク要素を ...
6月1日 16:57 投稿
Visual Studio 拡張と Roslyn インクリメンタルジェネレーターを使用した Base64 プリプロセッサの作成
Visual Studio 拡張と Roslyn インクリメンタルジェネレーターを用いて、Base64 変換ツールを作成します。
VS 拡張バージョン
以下のコードでは、EnvDTE80 NuGet パッケージが必要です。
using EnvDTE;
using EnvDTE80;
using System;
using System.Collections.Generic;
using System.IO;
namespace base64Tool
{
public static class MimeTypeConverter
{
...
5月31日 00:57 投稿
【WinForms】DLLを単一EXEファイルに統合する方法
複数のDLL依存関係を単一実行可能ファイルにパッケージ化
Windows Formsアプリケーション開発では、プロジェクトが多くのDLLに依存することがあります。ビルド後のDebugディレクトリには様々なDLLファイルが散在し、配布が煩雑になります。理想的なシナリオは、最終的に単一のEXEファイルとして配布することです。この記事では、その実現方法を説明します。
手順1: プロ ...
5月29日 18:57 投稿