タグ付けされた質問 「c#」

C#(「seesharp」と発音)は、Microsoftによって開発された、静的に型指定された高レベルのマルチパラダイムプログラミング言語です。C#コードは通常、Microsoftの.NETファミリのツールとランタイムを対象としています。これには、.NET Framework、.NET Core、Xamarinなどが含まれます。このタグは、C#またはC#の正式な仕様で記述されたコードに関する質問に使用します。

2
C#を使用して.rar .7z、.tar、.zip内のファイルとフォルダーの名前を変更する方法
圧縮ファイル.rar .7z、.tar、および.zipがあり、C#を使用して上記の圧縮アーカイブで使用できる物理ファイル名を変更したい。 私は、sharpcompressライブラリを使用してこれを試しましたが、.rar .7z、.tar、および.zipファイル内のファイル名またはフォルダー名を変更するためのそのような機能を見つけることができません。 また、DotNetZipライブラリを使用してみましたが、その唯一のサポートです。Zipは、DotNetZipライブラリを使用して何を試したかを確認します。 private static void RenameZipEntries(string file) { try { int renameCount = 0; using (ZipFile zip2 = ZipFile.Read(file)) { foreach (ZipEntry e in zip2.ToList()) { if (!e.IsDirectory) { if (e.FileName.EndsWith(".txt")) { var newname = e.FileName.Split('.')[0] + "_new." + e.FileName.Split('.')[1]; e.FileName = newname; e.Comment = "renamed"; zip2.Save(); …
12 c#  zip  tar  7zip  rar 

1
C#8の不明なnull可能性とは何ですか?
C#8.0では、null許容の参照型を使用できます。ドキュメントでは、null可能性には4つのタイプがあると述べています。最初の3つは非常に明確ですが、「不明」のポイントを理解できません。ドキュメントはそれがジェネリックで使用されると言いますが、ジェネリックでT型の制約のない変数でメソッドを呼び出そうとすると、型がnull可能であるかのように警告するだけです。unknownとnullableの違いはわかりません。なぜ未知数が存在するのですか?それはどのように現れますか?

4
「長いパスを認識する」環境でのPathRelativePathToへの引数の制限
以下のために長いパス意識のWindows 10上のプロセス、私は窓が法シェル使用時に引数の制限が何であるかを理解しようとしていPathRelativePathToを。 以下の例では、pinvokeを介してC#を使用してメソッドを呼び出しています。 以下に複数の例とその出力を示しました。注意: すべての例は、「from」のディレクトリパスと「to」のファイルパスを示しています(これらのパスは実際にはディスク上に存在しません)。 私の観察は 「短い」MAX_PATH長(260)未満のパスは、予期した結果で成功を返します。 「短い」MAX_PATH 上のいくつかのパスは、正しい結果で成功を返します。 「短い」MAX_PATH 上のいくつかのパスは、間違った答えで成功を返します(そうです!) かなり長いパスはエラーを返します。ただし、一定の最大長ではありません。 ソース: class Program { static class Native { // https://www.pinvoke.net/default.aspx/shlwapi.pathrelativepathto // https://docs.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathrelativepathtoa [DllImport("shlwapi.dll", SetLastError = true, CharSet = CharSet.Auto)] [return: MarshalAs(UnmanagedType.Bool)] internal static extern bool PathRelativePathTo([Out] StringBuilder pszPath, [In] string pszFrom, [In] int dwAttrFrom, [In] string pszTo, [In] …
12 c#  .net  windows  c#-4.0  c#-3.0 

5
System.Text.Json.JsonSerializerのデフォルトオプションをグローバルに設定する方法
更新[2019-12-23]: ボーカルコミュニティの入力に一部起因して、この問題は.NET 5.0のロードマップに追加されました。 更新[2019-10-10]: この動作の実装を確認したい場合System.Text.Json.JsonSerializerオーバーの頭オープンGitHubの問題が指摘クリスYungmannとで重量を量ります。 これの代わりに: JsonSerializerOptions options = new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase // etc. }; JsonSerializer.Deserialize<SomeObject>(someJsonString, options); 私はこのようなことをしたいと思います: // This property is a pleasant fiction JsonSerializer.DefaultSettings = new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase // etc. }; // This uses my options JsonSerializer.Deserialize<SomeObject>(someJsonString); // And somewhere else in …

3
.netコアでnewtonsoftコードをSystem.Text.Jsonに変換する3. JObject.ParseおよびJsonPropertyに相当するもの
私のnewtonsoft実装を.net core 3.0の新しいJSONライブラリに変換しています。次のコードがあります public static bool IsValidJson(string json) { try { JObject.Parse(json); return true; } catch (Exception ex) { Logger.ErrorFormat("Invalid Json Received {0}", json); Logger.Fatal(ex.Message); return false; } } に相当するものを見つけることができません JObject.Parse(json); また、JsonProperty同等の属性になります public class ResponseJson { [JsonProperty(PropertyName = "status")] public bool Status { get; set; } [JsonProperty(PropertyName = "message")] public …

2
.Net Frameworkバージョン(4.6.2から4.7.2)を更新した後、GetPathsOfAllDirectoriesAbove()を評価できない
私が取り組んでいるプロジェクトが.NET Framework 4.6.2から4.7.2にアップグレードされました。ビルド時に、自分のコードではないファイルで、次のエラーが発生します。 プロジェクトプロパティのビルドタブにも同じエラーが表示されます。 私は途方に暮れています-エラーを検索したところ、空になりました。誰かがこれに遭遇したり解決したことはありますか?

2
WPFアプリの.NET Core 3.0でSystem.Windows.Formsを参照する方法
WPFデスクトップアプリを.NET FramworkからCore 3.0に移行しています。System.Windows.Forms.FolderBrowserDialog()を使用していて、この参照をCoreプロジェクトに追加する方法に行き詰まっています。"System.Windows.Forms" NuGetパッケージはありませんか?コアでFolderBrowserDialogを表示する別の方法はありますか? 更新 デフォルトのテンプレートを使用してコアプロジェクトを作成し、貼り付けた.csファイルと.xamlファイルをそのプロジェクトにコピーしました。.csprojファイルは次のようになります。 <Project Sdk="Microsoft.NET.Sdk.WindowsDesktop"> <PropertyGroup> <OutputType>WinExe</OutputType> <TargetFramework>netcoreapp3.0</TargetFramework> <UseWPF>true</UseWPF> </PropertyGroup>

2
日時を変換しますか?文字列に
DateTime?文字列に変換したいのですが。日付がnullの場合はを返し""、それ以外の場合は次のような文字列形式を返します"2020-03-05T07:52:59.665Z"。コードはこのようなものですが、機能しません。"DateTime?"「ToUniversalTime」の定義は含まれていないとのことです。誰かがこれを修正する方法を知っていますか? DateTime? date = DateTime.UtcNow; var dateInUTCString = date == null ? "" : date.ToUniversalTime().ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff'Z'");
11 c# 

1
キーによるImmutableSortedDictionary範囲列挙
私はC#のについて読んでいたImmutableSortedDictionary中でSystem.Collections.Immutable、私のプログラムでそれを適用する方法を考えます。私はC ++ lower_boundとupper_bound(ここを参照)をかなり気に入っており、範囲検索のようなものを見たいと思っていました。ただし、同様のメソッドがドキュメントに不思議に欠けているようです。何か不足していますか?または、MSはソートされた範囲への効率的なアクセスなしにソートされた辞書を本当に提供しますか?それはIEnumerable、拡張メソッドのように、キーに対して実行できることとまったく同じではないようです。そのため、コレクションから直接提供されるものを見ていません。

4
System.Text.Jsonを使用してリストを非同期に逆シリアル化する
多くのオブジェクトのリストを含む大きなjsonファイルを要求するとします。一度にメモリに保存したくはありませんが、1つずつ読み取って処理したいと思います。したがって、非同期System.IO.Streamストリームをに変換する必要がありIAsyncEnumerable<T>ます。新しいSystem.Text.JsonAPIを使用してこれを行うにはどうすればよいですか? private async IAsyncEnumerable<T> GetList<T>(Uri url, CancellationToken cancellationToken = default) { using (var httpResponse = await httpClient.GetAsync(url, cancellationToken)) { using (var stream = await httpResponse.Content.ReadAsStreamAsync()) { // Probably do something with JsonSerializer.DeserializeAsync here without serializing the entire thing in one go } } }

3
.NET Core 3シングルファイルアプリを取得してappsettings.jsonファイルを見つけるにはどうすればよいですか?
単一ファイルの.Net Core 3.0 Web APIアプリケーションappsettings.jsonは、単一ファイルアプリケーションのビルド先と同じディレクトリにあるファイルを検索するようにどのように構成する必要がありますか? 実行した後 dotnet publish -r win-x64 -c Release /p:PublishSingleFile=true ディレクトリは次のようになります。 XX/XX/XXXX XX:XX PM <DIR> . XX/XX/XXXX XX:XX PM <DIR> .. XX/XX/XXXX XX:XX PM 134 appsettings.json XX/XX/XXXX XX:XX PM 92,899,983 APPNAME.exe XX/XX/XXXX XX:XX PM 541 web.config 3 File(s) 92,900,658 bytes ただし、実行しようとするAPPNAME.exeと、次のエラーが発生します。 An exception occurred, System.IO.FileNotFoundException: The configuration …

1
Blazor .NET Core 3アプリケーションでAzure SignalRサービスに接続するSignalR .NETクライアント
ASP.NET Core 3.0 Blazor(サーバー側)アプリケーションとAzure SignalR Serviceを接続しようとしています。最終的に、SignalRクライアント(サービス)をいくつかのBlazorコンポーネントに注入して、UI / DOMをリアルタイムで更新できるようにします。 私の問題は.StartAsync()、ハブ接続でメソッドを呼び出すと、次のメッセージが表示されることです。 応答ステータスコードが成功を示さない:404(見つかりません)。 BootstrapSignalRClient.cs このファイルは、URL、接続文字列、キー、メソッド名、ハブ名など、SignalRサービスの構成を読み込みます。これらの設定は静的クラスに取り込まれ、SignalRServiceConfiguration後で使用されます。 public static class BootstrapSignalRClient { public static IServiceCollection AddSignalRServiceClient(this IServiceCollection services, IConfiguration configuration) { SignalRServiceConfiguration signalRServiceConfiguration = new SignalRServiceConfiguration(); configuration.Bind(nameof(SignalRServiceConfiguration), signalRServiceConfiguration); services.AddSingleton(signalRServiceConfiguration); services.AddSingleton<ISignalRClient, SignalRClient>(); return services; } } SignalRServiceConfiguration.cs public class SignalRServiceConfiguration { public string ConnectionString { get; …

4
SignalR接続を終了するにはどうすればよいですか?
SignalRを使用してウェブサイト上のデータを転送しています。ただし、SignalRは一定期間のみデータを送信でき、その期間が経過した場合は接続を強制終了する必要があります。 $.connection.hub.stop()要求がまだ保留中で完了していない場合、Stop-Function はキャンセルされます。ただし、このリクエストは、送信されたデータ量に関係なく強制的にキャンセルする必要があります。 どのように私はすることができます殺す SignalR-接続の?

1
Powershellで実行しているときとVisual Studioで実行しているときのHttpClient同時動作が異なる
B2Cでユーザーを作成するためにMS Graph APIを使用して、数百万のユーザーをオンプレミスADからAzure AD B2Cに移行しています。この移行を実行するための.Net Core 3.1コンソールアプリケーションを作成しました。速度を上げるために、Graph APIを同時に呼び出しています。これはうまく機能しています。 開発中にVisual Studio 2019から実行しているときに許容できるパフォーマンスを体験しましたが、テストのためにPowershell 7のコマンドラインから実行しています。Powershellから、HttpClientへの同時呼び出しのパフォーマンスは非常に悪いです。Powershellからの実行時にHttpClientが許可する同時呼び出しの数には制限があるため、40から50を超える同時バッチでの要求がスタックし始めます。残りをブロックしている間、40から50の同時リクエストを実行しているようです。 私は非同期プログラミングの支援を探していません。Visual Studioの実行時の動作とPowershellコマンドラインの実行時の動作の違いをトラブルシューティングする方法を探しています。Visual Studioの緑の矢印ボタンからリリースモードで実行すると、期待どおりに動作します。コマンドラインからの実行ではできません。 タスクリストに非同期呼び出しを入力し、Task.WhenAll(tasks)を待ちます。各呼び出しには300〜400ミリ秒かかります。Visual Studioから実行すると、期待どおりに動作します。私は1000の呼び出しの同時バッチを作成し、それぞれが予想時間内に個別に完了します。タスクブロック全体は、最長の個々の呼び出しよりも数ミリ秒長くかかります。 Powershellコマンドラインから同じビルドを実行すると、動作が変わります。最初の40から50の呼び出しは、予想される300から400ミリ秒かかりますが、その後、個々の呼び出し時間はそれぞれ最大20秒になります。呼び出しはシリアル化されていると思うので、他の呼び出しが待機している間、一度に実行されるのは40〜50だけです。 何時間もの試行錯誤の末、HttpClientに絞り込むことができました。問題を特定するために、Task.Delay(300)を実行してモック結果を返すメソッドを使用して、HttpClient.SendAsyncの呼び出しをモック化しました。この場合、コンソールからの実行は、Visual Studioからの実行と同じように動作します。 私はIHttpClientFactoryを使用していますが、ServicePointManagerの接続制限を調整しようとしました。 これが私の登録コードです。 public static IServiceCollection RegisterHttpClient(this IServiceCollection services, int batchSize) { ServicePointManager.DefaultConnectionLimit = batchSize; ServicePointManager.MaxServicePoints = batchSize; ServicePointManager.SetTcpKeepAlive(true, 1000, 5000); services.AddHttpClient(MSGraphRequestManager.HttpClientName, c => { c.Timeout = TimeSpan.FromSeconds(360); c.DefaultRequestHeaders.Add("User-Agent", "xxxxxxxxxxxx"); }) …

2
メッセージの処理が失敗した場合、同じメッセージを再度消費します
Confluent.Kafka .NETクライアントバージョン1.3.0を使用しています。私はドキュメントに従っています: var consumerConfig = new ConsumerConfig { BootstrapServers = "server1, server2", AutoOffsetReset = AutoOffsetReset.Earliest, EnableAutoCommit = true, EnableAutoOffsetStore = false, GroupId = this.groupId, SecurityProtocol = SecurityProtocol.SaslPlaintext, SaslMechanism = SaslMechanism.Plain, SaslUsername = this.kafkaUsername, SaslPassword = this.kafkaPassword, }; using (var consumer = new ConsumerBuilder<Ignore, string>(consumerConfig).Build()) { var cancellationToken = new CancellationTokenSource(); …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.