seraphyの日記

日記というよりは過去を振り返るときのための単なる備忘録

C#

C#でUACの昇格可能なEXEのCOMオブジェクトを作成する方法

概要 本サンプルはC#によるOut-of-processのCOMサーバーの作成と、それをUACの昇格可能なCOMにする手順を示すものである。 ※ ビルド可能なプロジェクト一式はGitHub上にあります。 github.com COM Elevation Monikerについて Vista以降、管理者権限が必要な…

ExcelのRTDサーバをC#で作る方法

Excelでリアルタイムデータを取得するRTDサーバをC#で作る方法 概要 Excelには動的にリアルタイムデータをセルに取得・表示するための仕組みが2つある DDE(Dynamic Data Exchange, 動的データ交換) RTD(Realtime Data) どちらも、ほぼ似たようなワークシート…

Visual Studio 2013 Expressで標準サポートされるテンプレートエンジン(T4)の活用方法

コードジェネレータの有用性とT4 業務系のアプリケーションを作成していると、多かれ少なかれデータモデルのようなものをソースコード上のエンティティクラスとして表すために似たようなコードをたくさん書かなければならないことがある。もちろん手で地道に…

C#5.0のasync/awaitによる非同期処理の使い方

C#

async/awaitとは async/awaitは、DotNET4.5でC#5.0(とVB)で言語仕様とフレームワークに組み込まれた"非同期処理を同期的に記述できる仕組み"である。 PLINQなどが計算処理などを複数スレッドに分散してCPUを効率よく使うことを目的としているのに対して、asy…

C#でアプリケーション設定を取得・保存する、いくつかの方法

基本はapp.config(web.config)に集約される DotNETではアプリケーション設定の類を扱うには、ざっくりと以下の方法があげられる。 app.config (ウェブアプリケーションの場合は、web.config) appSettingsによる単純な key=value 形式の文字列データによる方…

JavaのJAXBに相当することをC#で行う方法

C#ではXmlSerializerがJavaのJAXBに相当する 前回は、JavaでXMLをあつかう方法に関連してJAXBを調べてみたので、今回は、それと同等なことをC#で試してみる。 DotNET FrameworkはVer1.1のころからXMLには非常に手厚いサポートがあり、 JavaのJAXBに相当する…

ラムダ/クロージャ/ブロックの覚え書き

C#, C++, Objective-Cのラムダ(匿名関数)の基本的な使い方の覚え書きと、JavaSE7時点のラムダ相当のイディオムについての雑記。(※ プログラムの作用に主眼を置いて、単純に、Lambda ≒ Closure ≒ Block ≒ 匿名関数 という認識で書いてます。) C#4.0のラムダの…