備忘録

備忘録

C#

HttpClientFactoryとPollyをコンソールアプリケーションで使用する方法

C#

Ⅱ. やり方 1. 必要なパッケージをインストールする Install-Package Microsoft.Extensions.Http.Polly 2. サンプルプログラムを書く using Microsoft.Extensions.DependencyInjection; using Polly; using Polly.Extensions.Http; using Polly.Timeout; usin…

C#で正規表現を利用してランダム文字列を生成する方法

C#

Ⅰ. はじめに タイトルの通り「C#で正規表現を利用してランダム文字列を生成する方法」です。 Ⅱ. やり方 1. 必要なパッケージをインストールする Install-Package Fare 2. サンプルプログラムを書く using Fare; var pattern = "[a-z0-9]{6}"; var xeger = ne…

ConfigurationBuilderを利用して設定ファイルを読み込む方法

C#

Ⅰ. はじめに タイトルの通り「ConfigurationBuilderを利用して設定ファイルを読み込む方法」です。 Ⅱ. やり方 1. 必要なパッケージをインストールする Install-Package Microsoft.Extensions.Hosting Install-Package Microsoft.Extensions.Configuration 2.…

コンソールアプリケーションでGeneric Hostを利用する方法

C#

Ⅰ. はじめに タイトルの通り「コンソールアプリケーションでGeneric Hostを利用する方法」です。 Ⅱ. やり方 1. 必要なパッケージをインストールする Install-Package Microsoft.Extensions.Hosting 2. サンプルプログラムを書く using Microsoft.Extensions.…

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 lifetim…

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. 必要なパッケージをインストールする dotnet add package System.Data.HashFunction.xxHash --version 2.0.0 2. プログラムを書く using System.Data.HashFunction.xxHash; usin…

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

Ⅰ. はじめに タイトルの通り「ASP.NETでBASIC認証する方法」です。 Ⅱ. やり方 1. 必要なパッケージをインストールする dotnet add package idunno.Authentication.Basic --version 2.3.0 2. プログラムを書く Startup.cs using idunno.Authentication.Basic;…

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からインストールする dotnet add package Nager.PublicSuffix --version 2.4.0 2. サンプルプログラムを書く using Nager.PublicSuffix; var …

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からインストールする dotnet add package FirebaseAdmin --version 2.3.0 2. Firebase サービスアカ…

C#でDLLをInjectする方法

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

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#

Ⅰ. はじめに Ⅱ. ConsoleAppFrameworkを利用する方法 1. NuGetからConsoleAppFrameworkをインストールする 2. サンプルプログラムを書く 3. 実行結果 Ⅲ. CommandLineParserを利用する方法 1. NuGetから CommandLineParser をインストールする 2. サンプルプロ…

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. 自分でマップを作成する方法 出力 Ⅳ. 書き込む方法 FAQ Q. UTF-8 BOMありで出力したいです。 参考 Ⅰ. はじめに タイトルの通り「C#でCsvHelpe…

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

Ⅰ. はじめに タイトルの通り「タスクトレイのアイコンを消す方法」です。 Ⅱ. やり方 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…