本文へ移動
Develop Tools
← 使い方ガイドへ戻る

C#コードをAIへ安全に共有する方法|識別子・接続先・値をマスキング

共有する範囲を最小化し、識別子・値・コメントを置換した後、C#構文と調査に必要な関係が残っているかを確認します。出力は共有用コピーとして扱います。

C#コードを最小化しブラウザ内でマスキングして共有前確認する流れ
C#コードを最小化しブラウザ内でマスキングして共有前確認する流れ

C#コードをブラウザ内でマスキングする

型・メソッド・変数の対応関係を残しながら、プロジェクト固有名・値・コメントを共有用コピーで置換します。入力コードと結果はDevelop Toolsのサーバーへ送信・保存されません。

C#コードマスキングツールを開く

結論

型・memberの対応、await、nullable、例外経路を残し、会社名、顧客名、endpoint、connection string、ログ文を置換します。標準APIまで変わった場合は、機密箇所を戻さず説明に必要な項目だけ解除します。

元codeを直接編集せず、共有用copyで作業してください。

ASP.NET Coreサービスの共有範囲を確認する

[ApiController]
[Route("api/internal/[controller]")]
public sealed class CustomerController(CustomerService service) : ControllerBase
{
    [HttpGet("{id}")]
    public async Task<ActionResult<CustomerDto?>> GetAsync(Guid id)
        => await service.FindAsync(id);
}

属性、route template、独自型、ID、endpoint、接続文字列、ログtemplateを同じ観点で確認します。

C#コードマスキングツールで確認する手順

  • 1. 再現に必要な型と呼び出しだけを共有用コピーへ切り出す
  • 2. 秘密値が漏えい済みなら先に失効する
  • 3. 識別子・値・コメントをマスキングする
  • 4. C#構文と残存情報を目視して結果だけ共有する

切り分けチェック表

分類確認対象
構造namespace、型、DI、async、nullable
秘密URL、connection string、Token、ID
境界属性、Directive、raw string、C# 14
周辺ログ、設定、SQL、画像

コンパイル時・実行時・フレームワーク境界を分ける

確認する情報共有時の注意
C# compilerwarning番号、型、nullable context、LangVersion警告を!やcastだけで隠さず契約を確認する
.NET runtime例外型、inner exception、stack frame、実入力path、ID、message内の個人情報を除く
ASP.NET Core環境、middleware、設定source、trace IDAuthorization、cookie、query、bodyを確認する
EF CoreLINQ、発行SQL、roundtrip、row数sensitive data loggingの結果をそのまま共有しない

C# version、target framework、ASP.NET Core・EF Core versionは別々に記録し、該当versionの公式資料と照合してください。

C#固有構文をマスキング後に目視確認する

  • namespace、型、record、generic、constraint、nullable annotationの対応を確認する
  • async、await、Task、CancellationToken、LINQ query chainと呼び出し順を確認する
  • attribute、route template、framework型・methodが説明に必要なら個別に解除する
  • #nullable、#if、#endif、#pragma、#regionを原文と比較する
  • raw string、interpolated raw string、primary constructor、required、initを重点確認する
  • null-forgiving operator(!)は実行時検査ではないため、警告を抑えた根拠を確認する
  • C# 14のextension block、field、null-conditional assignmentは非対応を前提に確認する

2026-08-13時点の確認ではDirective、raw string、C# 14構文が壊れる場合があります。ツール更新後は再テストしてください。

コード・設定・ログ・SQLを分けて共有する

共有物推奨する確認
.csC#コードマスキングツールでnamespace、型、member、値、コメントを置換
appsettings.jsonJSONマスキングツールで設定Key・Value・接続先を確認
stack trace・.logLogマスキングツールでpath、IP、ID、email、Tokenを確認
発行SQLSQLマスキングツールでtable、column、literal、commentを確認
HTTP情報Authorization、Cookie、Set-Cookie、query、body、PIIを手動確認

一度公開したToken、password、connection stringは、投稿削除やマスキングだけで対応を終えず、失効・ローテーションしてください。組織の規程、契約、法令、利用サービスの規約を優先します。

現行C#コードマスキングツールの対応範囲を確認する

確認項目現行ツールの扱い共有前の確認
分類クラス・型、関数・メソッド、識別子、値、コメントを置換Roslynと同等の完全な構文解析ではない
一般構文class、record、LINQ、asyncの外形を概ね保持同一識別子の対応とdelimiterを元コードと比較する
標準APISystem名前空間、属性、framework methodも置換され得る説明に必要な項目だけ結果側の右クリックで解除する
Directive#nullable、#if、#endif等が壊れる場合があるnullable contextや条件を相談文にも記載する
文字列通常・逐語的・補間文字列を置換raw stringは境界が崩れる場合がある
C# 14extension block、field keyword等を完全解析しない現時点の非対応境界として手動確認する
操作全消去、結果コピー、右クリックによる解除・再適用解除で戻った秘密情報を送信前に再確認する
保存表示設定だけをLocalStorageへ保存入力・結果はDevelop Toolsのサーバーへ送信・保存しない

マスキング結果は共有用コピーです。コンパイル可能な代替ソースや完全匿名化を保証しません。元コードを上書きせず、ビルド成果物へ混入させないでください。

Versionと公式資料を照合する

コード例は対象SDKとLangVersionで確認し、意図的なerror例は警告番号・例外・再現条件を記録します。C# 14 / .NET 10の記述は公開時点の公式資料と照合してください。

具体例:ASP.NET CoreコードをAIへ相談

型・memberの対応、await、nullable、例外経路を残し、会社名、顧客名、endpoint、connection string、ログ文を置換します。標準APIまで変わった場合は、機密箇所を戻さず説明に必要な項目だけ解除します。

実在しないexample.test、Dummy ID、架空の型名を使い、再現に不要なProject情報を取り除いて確認します。

  1. 最小再現を共有用copyへ切り出す
  2. 型・識別子・値・commentをマスキングする
  3. C#構文とerror条件を元codeと比較する
  4. マスキング結果だけを共有する

結果側は右クリックで個別解除・再適用できます。戻した情報が本当に必要か送信前に再確認してください。

よくある質問

マスキング後のC#コードはbuildできますか?
保証しません。標準API、attribute、Directive、raw string、C# 14構文が変化する場合があるため、共有用copyとして元codeと比較してください。
右クリックでどこまで戻せばよいですか?
Task、LINQ method、framework attribute等、説明に不可欠な項目だけを解除します。元の秘密値や固有名が戻っていないか再確認してください。
入力したC#コードはサーバーへ送信されますか?
入力と結果はブラウザ内で処理され、Develop Toolsのサーバーへ送信・保存されません。LocalStorageへ保存されるのは表示設定だけです。