chevron_left

メインカテゴリーを選択しなおす

cancel
はなちる
フォロー
住所
未設定
出身
未設定
ブログ村参加

2020/03/05

arrow_drop_down
  • 【C#】SourceGeneratorで実際にファイルを吐かせるようにする方法

    はじめに 今回はSourceGeneratorで実際にファイル出力させる方法について紹介したいと思います。 はじめに やり方 参考 やり方 SourceGeneratorで生成したコードが含まれる側の.csprojに対して(SourceGeneratorのコードが含まれる.csprojでないので注意)、EmitCompilerGeneratedFiles・CompilerGeneratedFilesOutputPathを記述します。 EmitCompilerGeneratedFiles : ファイルを出力するかどうか CompilerGeneratedFilesOutputPath : 出力先…

  • 【C#】MSBuildでdotnet buildが終了したあとにdllを特定の場所にコピーする方法

    はじめに 今回はMSBuildでdotnet buildが終了した後にdllを特定の場所にコピーする方法を紹介したいと思います。特にUnityの場合では、Roslyn AnalyzerやSourceGeneratorを利用する場合は手作業でdllをコピーするのはとても面倒です。そんなときはMS Buildで自動化しちゃいましょう。 はじめに やり方 共通のプロパティおよびパラメーター 参考 やり方 .csprojに以下を追加します。 <Target Name="DllCopy" AfterTargets="AfterBuild"> <Copy SourceFiles="$(OutputPath…

  • 【Rider】変数名やクラス名、構造体の名前などはGitHub Copilot Chatに考えてもらおう

    はじめに 今回は小ネタですが、GitHub Copilot Chatに変数名を考えてもらうとめっちゃ良かったという話をしたいと思います。 C#13の情報がぼちぼち出てるのにC#10のまとめ記事執筆を勧めてくるCopilot君 はじめに 前提 使い方 さいごに 前提 GitHub CopilotをRiderに連携させておかないと利用することができませんので注意してください。 plugins.jetbrains.com 使い方 右側のGitHub Copilot Chatボタンを押すことで、チャットでやり取りがすることができます。 GitHub Copilot Chatどういう質問の仕方が良いのか…

  • 【C#】privateコンストラクタしかないclassを無理やりリフレクションで生成する

    はじめに 今回はPrivateコンストラクタしかないclassを無理やりリフレクションで作成する方法を紹介したいと思います。 public class Hoge { // privateコンストラクタしかないと正攻法だと外から生成できない private Hoge() { } } はじめに やり方 引数がない場合 引数がある場合 やり方 引数がない場合 Activator.CreateInstanceのnonPublicがあるオーバーロードを利用することで実現できます。 public static object? CreateInstance (Type type, bool nonPubli…

  • 【C#】protobufのカスタムオプションを取得する方法

    はじめに 今回はprotobufのカスタムオプションをC#で取り出す方法を紹介したいと思います。 protobuf.dev // カスタムオプションを定義 extend google.protobuf.MessageOptions { string my_option = 50000; } message MyMessage { // "Hello, world!"をC#上で取り出したい option (my_option) = "Hello world!"; string message = 1; } はじめに カスタムオプションの定義 コンパイル カスタムオプションを取得する 参考 カスタ…

  • 【C#】Coconaを利用してSystem.CommandLineなどを利用せずに簡単にConsoleアプリケーションを作成する

    はじめに 今回はCoconaというOSSを紹介したいと思います。github.com はじめに 概要 インストール 使い方 基本 Optionsについて Argumentsについて Sub-commands パラメーターの共通化 Validation Microsoft.Extensions.*の利用 Logging DI さいごに 概要 よくあるSystem.CommandLineを利用してコンソールアプリケーションを作る例を書いてみました。 learn.microsoft.com // System.CommandLineを利用した例 public class Program { publ…

  • 【Unity】EditorWindowでEditorGUILayout.PropertyField&SerializedObject.FindPropertyをしてもデフォルト値にクリアされてしまう問題の対処法

    はじめに 以下のコードを書いていたところ、Unity2022.3.10f1では正しく動作しないことに気がつきました。(Unity6では正しく動作していました) using UnityEditor; using UnityEngine; public class SampleWindow : EditorWindow { [SerializeField] private string[] _texts; [MenuItem("Tools/SampleWindow")] public static void Open() { GetWindow<SampleWindow>(); } private…

  • 【Unity】Player SettingsのScriptingDefineSymbolsをスクリプトから取得・設定する方法

    はじめに 今回はPlayerSettingsのScriptingDefineSymbolsをスクリプトから取得・設定する方法について紹介をしたいと思います。 ProjectSettings/Player/OtherSettings/Script Compilationより設定可一応補足ではありますが、スクリプトからでなければProjectSettings/Player/OtherSettings/Script Compilationから設定可能になります。 はじめに 取得方法 設定方法 補足 取得方法 PlayerSettings.GetScriptingDefineSymbolsForGro…

arrow_drop_down

ブログリーダー」を活用して、はなちるさんをフォローしませんか?

ハンドル名
はなちるさん
ブログタイトル
はなちるのマイノート
フォロー
はなちるのマイノート

にほんブログ村 カテゴリー一覧

商用