備忘録

備忘録

C#

C#でシングルトンパターンを実装する方法

C#

Ⅰ. はじめに タイトルの通り「C#でシングルトンパターンを実装する方法」です。 GoFによるデザインパターンのシングルトンパターン(Singleton Pattern)です。 Ⅱ. サンプルプログラム Config.cs public class Config { public static Config Instance { get; …

ホストを利用したアプリケーション終了時に任意の処理を実行する方法

Ⅰ. はじめに タイトルの通り「ホストを利用したアプリケーション終了時に任意の処理を実行する方法」です。 Ⅱ. やり方 プログラムを修正する Program.cs public static void Main(string[] args) { var host = CreateHostBuilder(args).Build(); var life = …

C# + AWS Lambda + API Gateway

注意 この記事の内容は2017年3月10日時点の物です。 内容が古くなっている場合があります。 Ⅰ. はじめに タイトルの通りですが、 AWS LambdaでC#を動かし、エンドポイントにAmazon API Gatewayを使う方法です。 Ⅱ. ゴール 身長と体重を受け取り、BMIと理想体…

C# Rfc2898DeriveBytesでSHA1以外を利用して任意のバイト配列を取得する方法

C#

Ⅰ. はじめに Rfc2898DeriveBytes のデフォルトは HMACSHA1(HashAlgorithmName.SHA1)です。任意のハッシュアルゴリズムとして以下が指定可能です。 HashAlgorithmName.MD5 HashAlgorithmName.SHA1 HashAlgorithmName.SHA256 HashAlgorithmName.SHA384 HashAlg…

C#でxxHashを計算する方法

C#

Ⅰ. はじめに タイトルの通り「C#でxxHashを計算する方法」です。 Ⅱ. やり方 1. 必要なパッケージをインストールする Install-Package System.Data.HashFunction.xxHash 2. プログラムを書く // using System.Data.HashFunction; // using System.Data.HashFu…

ASP.NETでBASIC認証を実装する方法

Ⅰ. はじめに タイトルの通り「ASP.NETでBASIC認証する方法」です。 Ⅱ. やり方 1. 必要なパッケージをインストールする Install-Package idunno.Authentication.Basic 2. プログラムを書く Startup.cs public void ConfigureServices(IServiceCollection serv…

C#でWebSocketサーバを建てる方法

Ⅰ. はじめに タイトルの通り「C#でWebSocketサーバを建てる方法」です。 Ⅱ. やり方 1. 必要なパッケージをNuGetからインストールする Install-Package Fleck 2. サンプルプログラムを書く using Fleck; using System; using System.Net.WebSockets; using Sy…

C#でドメインからTLDを取得する方法

C#

Ⅰ. はじめに タイトルの通り「C#でドメインからTLDを取得する方法」です。 Ⅱ. やり方 1. 必要なパッケージをNuGetからインストールする Install-Package Nager.PublicSuffix 2. サンプルプログラムを書く var domainParser = new DomainParser(new WebTldRul…

C# で CA1063 が出ないように IDisposable を実装する方法

C#

Ⅰ. はじめに タイトルの通り「C# で CA1063 が出ないように IDisposable を実装する方法」です。 Ⅱ. サンプルプログラム public class MyClass : IDisposable { #region Dispose public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } prote…

C# で Blowfish で暗号化、複合する方法

C#

Ⅰ. はじめに タイトルの通り「C# で Blowfish で暗号化、複合する方法」です。 Ⅱ. やり方 1. 必要なパッケージをNuGetからインストールする Install-Package Portable.BouncyCastle 2. サンプルプログラムを書く using Org.BouncyCastle.Crypto.Engines; usi…

C#でFCMを利用してPUSH通知を送信する方法

Ⅰ. はじめに タイトルの通り「C#でFCMを利用してPUSH通知を送信する方法」です。 ※FCM = Firebase Cloud Messaging Ⅱ. やり方 1. 必要なパッケージをNuGetからインストールする Install-Package FirebaseAdmin 2. Firebase サービスアカウントの秘密鍵(serv…

C#でDLLをInjectする方法

Ⅰ. はじめに タイトルの通り「C#でDLLをInjectする方法」です。2019/05/12時点で以下3つのインジェクト方法に対応してます。 CreateRemoteThread ManualMap ThreadHijack Ⅱ. やり方 1. NuGetから Bleak をインストールする Install-Package Bleak 2. サンプ…

C#でActiveMQを利用する方法

Ⅰ. はじめに タイトルの通り「C#でActiveMQを利用する方法」です。※CentOSにActiveMQをインストールする方法 https://kagasu.hatenablog.com/entry/2019/04/08/195932 Ⅱ. やり方 1. NuGet からライブラリをインストールする Install-Package Apache.NMS.Acti…

C#でPowerPoint(ppt, pptx)ファイルから文字列を抽出する方法

C#

Ⅰ. はじめに タイトルの通り「C#でPowerPoint(ppt, pptx)ファイルから文字列を抽出する方法」です。 Ⅱ. やり方 1. サンプルファイルを用意する http://www.mediafire.com/file/b66k4kxskc2agl1/sample.pptx/file 2. 参照を追加する 画像の2つのCOM参照を追加…

.NET CoreコンソールアプリケーションをDockerで動かす方法

Ⅰ. はじめに タイトルの通り「.NET CoreコンソールアプリケーションをDockerで動かす方法」です。 Ⅱ. 環境 Docker 18.09.1 .NET Core 2.2 Ⅱ. やり方 1. 適当なコンソールアプリケーションを作成する Program.cs static void Main(string[] args) { Console.W…

C#スクリプトを実行する方法

C#

Ⅰ. はじめに Ⅱ. 必要なもの Ⅲ. やり方 1. dotnet-script をインストールする 2. サンプルプログラムを書く 3. 実行する 実行結果 その他 URLから実行する REPL Scaffolding IPアドレスを表示するサンプルプログラム 参考 Ⅰ. はじめに タイトルの通り「C#スク…

C#でコマンドライン引数を扱う方法

C#

Ⅰ. はじめに Ⅱ. CommandLineParserを利用する方法 1. NuGetから CommandLineParser をインストールする 2. サンプルプログラムを書く 3. 実行結果 Ⅲ. System.CommandLine.DragonFruit を使う方法 1. パッケージソースを追加する 2. System.CommandLine.Drago…

C#でcronの書き方でスケジュール実行する方法

C#

Ⅰ. はじめに cronは以下の書き方でスケジュール実行できます。 この記事ではC#でも以下の書き方でcronのようにスケジュール実行する方法(ライブラリ)を紹介します。 # 1分ごと * * * * * command # 1時間ごと 0 * * * * command Ⅱ. やり方 1. CronSTD をイ…

HerokuでASP.NET Coreを動かす方法

Ⅰ. はじめに Ⅱ. 必要なもの Ⅲ. やり方(Windows) 1. VisualStudio で ASP.NET Core Web アプリケーションを作成する 2. Dockerfile を追加する 3. 実行ファイルを生成する 4. Heroku でアプリを作成する 5. Heroku にデプロイする 6. 実行結果 Ⅲ. やり方(L…

C#でTitanium-Web-Proxyを利用してProxyサーバを構築する方法

C#

Ⅰ. はじめに タイトルの通り「C#でTitanium-Web-Proxyを利用してProxyサーバを構築する方法」です。 Titanium-Web-Proxyはクロスプラットフォーム対応しています。 Websocketには対応しておらずデータをリレーするだけです。WebSocketのプロキシサーバが必要…

WPFでボタンにアイコンを設定する方法

Ⅰ. はじめに タイトルの通り「WPFでボタンにアイコンを設定する方法」です。 Ⅱ. やり方 1. Material Design Icons にアクセスする 2. アイコンを右クリックし、View XAMLをクリックする 3. XAMLを貼り付ける <Button Width="50" Height="50"> <Viewbox Width="48" Height="48"> <Canvas Width="24" Height="24"> </canvas></viewbox></button>

Xamarinでクリップボードを簡単に使う方法

Ⅰ. はじめに タイトルの通り「Xamarinでクリップボードを簡単に使う方法」です。 通常の方法で実装した場合、プラットフォームごとに異なる実装をする必要があり手間がかかります。この記事では Xamarin.Plugins.Clipboard を利用して簡単にクリップボードを…

.NET CoreでSQLite3を使う方法

Ⅰ. はじめに Ⅱ. インストール Ⅲ. INSERT方法 サンプルプログラム 実行結果 Ⅳ. SELECT方法 サンプルプログラム 実行結果 Ⅳ. SELECT方法(Dapper) サンプルプログラム 実行結果 Ⅰ. はじめに タイトルの通り「.NET CoreでSQLite3を使う方法」です。 Ⅱ. インス…

C#でCsvHelperを使ってCSVを読み込み、書き込みを行う方法

C#

Ⅰ. はじめに Ⅱ. インストール Ⅲ. 読み込む方法 1. CSVにヘッダが有る場合 出力 2. CSVにヘッダが無い場合 出力 3. 自分でマップを作成する方法 出力 Ⅳ. 書き込む方法 参考 Ⅰ. はじめに タイトルの通り「C#でCsvHelperを使ってCSVを読み込み、書き込みを行う…

タスクトレイのアイコンを消す方法

Ⅰ. はじめに タイトルの通り「タスクトレイのアイコンを消す方法」です。 Ⅱ. やり方 C++の場合 #include <Windows.h> int main() { auto hWnd = FindWindow(L"ApplicationWindow", NULL); NOTIFYICONDATA data; data.cbSize = sizeof(NOTIFYICONDATA); data.hWnd = hWnd</windows.h>…

C#でprotobuf-netを使ってデフォルト値を強制的に出力する方法

Ⅰ. はじめに ageが省略された例 Ⅱ. やり方 サンプルプログラム 実行結果 参考 Ⅰ. はじめに タイトルの通り「C#でprotobuf-netを使ってデフォルト値を強制的に出力する方法」です。 protobuf-netはデフォルト値を出力しません。 ageが省略された例 Human.prot…

C#でProtocolBuffersを使う方法

Ⅰ. はじめに Ⅱ. やり方(Google.Protobufを使う方法) 1. NuGetから Google.Protobuf をインストールする 2. protoファイルを作成する 3. protoc.exe をダウンロードする 4. protoファイルからC#のクラスを自動生成する 5. サンプルプログラムを書く 実行結…

C#でLuaを使う方法(NLuaの使い方)

Ⅰ. はじめに タイトルの通り「C#でLuaを使う方法(NLuaの使い方)」です。 Ⅱ. やり方 1. NuGetからNLuaをインストールする Install-Package NLua 2. サンプルプログラム humans.lua Humans = { [10001] = {id = 10001, name = 'name001' }, [10002] = {id = …

C#でWinPcapを使う方法(SharpPcapの使い方)

C#

Ⅰ. はじめに Ⅱ. やり方 1. NuGetからSharpPcapをインストールする 2. サンプルプログラムをコピペする 実行結果 Ⅲ. TCPだけをキャプチャする方法 参考 Ⅰ. はじめに タイトルの通り「C#でWinPcapを使う方法(SharpPcapの使い方)」です。 WinPcapを利用したキ…

Costura.Fody の使い方

Ⅰ. はじめに タイトルの通り「Costura.Fody」の使い方です。 Costura.Fodyはpdbファイルを基に自動的にDLLをEXEに埋め込みます。 ILMergeの代替として利用できます。 Ⅱ. 使い方 1. Costura.Fody をインストールする Install-Package Costura.Fody 2. プロジ…