Skip to content

Instantly share code, notes, and snippets.

View itn3000's full-sized avatar
🤔
🤔🤔🤔🤔🤔🤔

Yusuke Ito itn3000

🤔
🤔🤔🤔🤔🤔🤔
View GitHub Profile
@guitarrapc
guitarrapc / Get-ListenProcessByPort.ps1
Last active September 19, 2020 09:21
Get Process by port
$port = 8080
(Get-NetTCPConnection -LocalPort $port -State Listen).OwningProcess | %{Get-Process -Id $_}
# RESULT
# Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
# ------- ------ ----- ----- ------ -- -- -----------
# 202 29 1580 5432 0.02 18228 1 wslhost
# 307 38 22840 22220 3.58 17372 1 com.docker.backend
@yfakariya
yfakariya / MicrosoftExtensionsDependencyInjectionDeepDive.md
Created November 4, 2019 11:47
Deep dive of Microsoft.Extensions.DependencyInjection in Japanese

Microsoft.Extensions.DependencyInjection Deep Dive

そんなに深くない気がしますが。Microsoft.Extensions.DependencyInjection の DI についてざっくりまとめた記事です。なお、長いので、Microsoft.Extensions.DependencyInjectionM.E.DI と略します。

例によって、公式ドキュメント にすべて書いてある、はずですが、ここでは少し別の観点でまとめてみます。また、ドキュメントに書いてない(と思う)内部実装についてもいくつか書いてあります。

使い方

  • IServiceCollection の拡張メソッドを使用して、フレームワークやランタイムが提供する IServiceCollection の実装に対して登録していきます。
  • IServiceCollectionServiceDescriptor というサービスについてのスペックを表すオブジェクトのコレクションである。ServiceDescriptor はサービス型をキーにして、ライフタイムと実装を持ちます。
@yfakariya
yfakariya / MicrosoftExtensionsOptionsDeepDive.md
Created November 4, 2019 11:44
Deep dive of Microsoft.Extensions.Options in Japanese

Microsoft.Extensions.Options Deep Dive

最近は .NET Core の仕事をしています。

さて、ASP.NET Core を使っていると、とりあえず構成情報みたいなものは IOptions<TOptions> で受け取っておけみたいな雑な話を目にします。 一応 公式のドキュメント はあるのですが、正直読んでもよくわからない。柔軟なんだねー、なるほどねーみたいな感じになりました。なので、ここではできる限り(?)網羅的に解説してみようと思います。

  • IOptions<TOptions> って何?(TOptions を直接注入すればいいじゃん)
  • IOptionsSnapshot<TOptions> とかたくさんあってよくわかんない
  • オプションの動的更新に必要なものは?
using System;
using System.Collections.Generic;
using System.Linq;
using BenchmarkDotNet.Attributes;
namespace misc_bench
{
[MemoryDiagnoser]
public class Benchmarks
@voluntas
voluntas / shiguredo_management.rst
Last active February 13, 2024 15:57
時雨堂を支えるマネージメント

時雨堂を支えるマネージメント

更新

2020-05-10

作者

@voluntas

バージョン

2020.2

URL

https://voluntas.github.io/

概要

@yutokun
yutokun / CSV Parser for C#.md
Last active September 15, 2019 13:42
Simple CSV Parser for C# without any dependency. (CC0)
@youkinjoh
youkinjoh / extendJSON.md
Last active March 9, 2022 07:37
JSONが対応していない値(NaN/Infinity/Date等)をJSONに保存する方法

JSONが対応していない値をJSONに保存する方法

JSONは NaN / Infinity / -InfinityDate 型等に対応していない。 しかし、JavaScriptのJSONは、これらを解消する仕組みを持っている。 それは JSON.parse の第二引数の reviverJSON.stringify の第二引数の replacer だ。

注意が必要なのは、 Date 型は toJSON メソッドを持つため replacer に値が渡る前に文字列になってしまうこと。 これに対応するには toJSON メソッドを一時退避してしまえば良い。

これらを上手く駆使すれば、JSONに型を保ったまま値を保存し復元することができる。

@ufcpp
ufcpp / RelativePathPdb.csproj
Created April 3, 2018 03:44
PDB 中に含まれるソースコードのパスを相対パスに変えるための csproj 設定(Rosnly リポジトリ内を漁ってたらこういう書き方だった)
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFrameworks>netcoreapp2.0</TargetFrameworks>
<LangVersion>latest</LangVersion>
<!-- このオプションの指定で、タイムスタンプとかを決定論的なハッシュ値に置き換える -->
<Deterministic>true</Deterministic>
@ufcpp
ufcpp / MagicallyResolvedOverload.cs
Last active March 29, 2018 11:00
C# 7.3触り出してみてる
using System;
using System.Collections.Generic;
namespace MagicallyResolvedOverload
{
/// <summary>
/// これまで、class だったら T、struct だったら T? を返す、みたいな処理書けなかったんだけど。
/// ちょっと無理やりだけど、C# 7.3 でできなくはない状態に。
/// </summary>
public static class EnumerableEx