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

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

5
新しいC#待機機能は何をしますか?[閉まっている]
クローズ。この質問はもっと焦点を合わせる必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てるようにします。 4年前に閉鎖されました。 この質問を改善する await関数が何をするのか誰かが説明できますか?
83 c#  c#-5.0  async-await 

3
エラーが発生した場合、usingステートメントはデータベーストランザクションをロールバックしますか?
usingステートメントにIDbTransactionがありますが、usingステートメントで例外がスローされた場合にロールバックされるかどうかはわかりません。usingステートメントがDispose()の呼び出しを強制することは知っていますが、Rollback()にも同じことが当てはまるかどうか誰かが知っていますか? 更新:また、以下のようにCommit()を明示的に呼び出す必要がありますか、それともusingステートメントによって処理されますか? 私のコードは次のようになります。 using Microsoft.Practices.EnterpriseLibrary.Data; ... using(IDbConnection connection = DatabaseInstance.CreateConnection()) { connection.Open(); using(IDbTransaction transaction = connection.BeginTransaction()) { //Attempt to do stuff in the database //potentially throw an exception transaction.Commit(); } }

6
.NET Core2.0上のJWT
私は、JWTをDotNetコア2.0で動作させるためにかなりの冒険をしてきました(現在、本日最終リリースに到達しています)。あるトンのドキュメントのは、しかし、すべてのサンプルコードでは、コアに新鮮で推奨されないAPIを使用して来ているように見える、積極的に実装されることになっています正確にどのように把握することを目のくらむようです。ホセを使ってみましたが、アプリです。UseJwtBearerAuthenticationは非推奨になり、次に何をすべきかについてのドキュメントはありません。 承認ヘッダーからJWTを解析し、HS256でエンコードされたJWTトークンのリクエストを承認できるdotnet core 2.0を使用するオープンソースプロジェクトを持っている人はいますか? 以下のクラスは例外をスローしませんが、リクエストは許可されておらず、なぜ許可されていないのかわかりません。応答は空の401なので、例外はなかったが、秘密が一致していないことを示しています。 奇妙なことに、トークンはHS256アルゴリズムで暗号化されていますが、どこでもそのアルゴリズムを使用するように強制するように指示するインジケーターが表示されません。 これが私がこれまでに持っているクラスです: using System; using System.Collections.Generic; using System.IO; using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Net.Http.Headers; using Newtonsoft.Json.Linq; using Microsoft.IdentityModel.Tokens; using System.Text; namespace Site.Authorization { public static class SiteAuthorizationExtensions { public static IServiceCollection AddSiteAuthorization(this IServiceCollection services) { …
83 c#  .net-core  jwt  jose 

9
パラメータを一定にすることはできますか?
Javaと同等のC#を探していfinalます。それは存在しますか? C#には次のようなものがありますか? public Foo(final int bar); 上記の例でbarは、は読み取り専用変数であり、によって変更することはできませんFoo()。C#でこれを行う方法はありますか? 例えば、多分私は働くことになり、長い方法持っているx、yとzいくつかのオブジェクトの座標(int型)を。関数がこれらの値を変更してデータが破損しないことを絶対に確認したいと思います。したがって、私はそれらを読み取り専用と宣言したいと思います。 public Foo(int x, int y, int z) { // do stuff x++; // oops. This corrupts the data. Can this be caught at compile time? // do more stuff, assuming x is still the original value. }

4
log4netの正しい使用方法(ロガーの命名)
log4netを構成して使用する方法は2つあります。1つ目は、独自のアペンダーと関連するロガーを構成できる場合です。 <!-- language: xml --> <appender name="myLogAppender" type="log4net.Appender.RollingFileAppender" > <file value="Logs\myLog.log" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date %level - %message%n" /> </layout> </appender> <logger name="myLog"> <level value="All"></level> <appender-ref ref="myLogAppender" /> </logger> そして、ログに何かを書きたいときは、次のことができます。 ILog log = LogManager.GetLogger("myLog"); log.Info("message"); これを使用する別の方法は、rootを必要なだけ詳細に構成することです。 <!-- language: xml --> <root> <level value="Error" /> <appender-ref ref="myLogAppender" /> </root> この場合、次のようなメッセージをログに記録できます。 …

5
リポジトリを削減してルートを集約する
現在、データベース内のほぼすべてのテーブルのリポジトリがあり、それらを集約ルートのみに縮小することで、DDDとさらに整合させたいと考えています。 次のテーブルがあると仮定しましょう。 UserとPhone。各ユーザーは1つ以上の電話を持っている可能性があります。集約ルートの概念がなければ、私は次のようなことをするかもしれません: //assuming I have the userId in session for example and I want to update a phone number List<Phone> phones = PhoneRepository.GetPhoneNumberByUserId(userId); phones[0].Number = “911”; PhoneRepository.Update(phones[0]); 集合根の概念は、実際よりも紙の上で理解する方が簡単です。ユーザーに属していない電話番号を取得することは決してないので、PhoneRepositoryを廃止し、電話関連のメソッドをUserRepositoryに組み込むことは理にかなっていますか?答えが「はい」であると仮定して、前のコードサンプルを書き直します。 UserRepositoryに電話番号を返すメソッドを設定することはできますか?または、常にユーザーへの参照を返し、ユーザーを介して関係をトラバースして電話番号に到達する必要があります。 List<Phone> phones = UserRepository.GetPhoneNumbers(userId); // Or User user = UserRepository.GetUserWithPhoneNumbers(userId); //this method will join to Phone どちらの方法で電話を入手したとしても、そのうちの1つを変更したとすると、どうすれば更新できますか?私の限られた理解は、ルートの下のオブジェクトはルートを介して更新する必要があるということです。これにより、以下の選択肢1に進むことができます。これはEntityFrameworkで完全に機能しますが、コードを読んでいると、Entity Frameworkがグラフ内の変更されたオブジェクトを監視しているにもかかわらず、実際に何を更新しているのかわからないため、これは非常にわかりにくいようです。 UserRepository.Update(user); // …

5
ListViewへのアイテムの追加を高速化するにはどうすればよいですか?
WinForms ListViewに数千(例:53,709)のアイテムを追加しています。 試行1:13,870 ms foreach (Object o in list) { ListViewItem item = new ListViewItem(); RefreshListViewItem(item, o); listView.Items.Add(item); } これは非常にうまくいきません。明らかな最初の修正は、を呼び出すことBeginUpdate/EndUpdateです。 試行2:3,106 ms listView.BeginUpdate(); foreach (Object o in list) { ListViewItem item = new ListViewItem(); RefreshListViewItem(item, o); listView.Items.Add(item); } listView.EndUpdate(); これは優れていますが、それでも桁違いに遅すぎます。ListViewItemsの作成とListViewItemsの追加を分けて、実際の原因を見つけましょう。 試行3:2,631 ms var items = new List<ListViewItem>(); foreach (Object o …

9
名前空間またはアセンブリ?
名前空間とアセンブリの間で非常に混乱しています。あるSystem.DataとSystem.Web名前空間やアセンブリ? これらは名前空間と呼ばれ、同時にGAC_32フォルダーに存在することに気づきました。それで、彼らは正確には何ですか?


12
.NET DLLファイルをGACに登録するにはどうすればよいですか?
GAC.DLLに登録したい.NETファイルを作成しました。 私は、このコマンドを使用しているWindows Server 2003のコマンドプロンプト: C:\"Path of dll"\>gacutil /i dllname.dll 'gacutil' is not recognized as an internal or external command, operable program or batch file. パスが正しくないと表示されます。 これを.NETcmdプロンプトで使用する必要がありますか?その場合、.NETcmdプロンプトを見つけることができません。


3
WPF MVVMなぜストレートXAMLウィンドウビューではなく、ContentControl + DataTemplateビューを使用するのですか?
なぜこれ? MainWindow.xaml: <Window x:Class="MVVMProject.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Grid> <ContentControl Content="{Binding}"/> </Grid> </Window> ExampleView.xamlを次のように設定します。 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:vms="clr-namespace:MVVMProject.ViewModels"> <DataTemplate DataType="{x:Type vms:ExampleVM}" > <Grid> <ActualContent/> </Grid> </DataTemplate> </ResourceDictionary> そして、次のようなウィンドウを作成します。 public partial class App : Application { protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); MainWindow app = new MainWindow(); ExampleVM context = new ExampleVM(); …
83 c#  wpf  xaml  mvvm  architecture 

7
早期および遅延バインディング
C#でアーリー/レイトバインディングが発生したときに頭を悩ませようとしています。 非仮想メソッドは常に早期にバインドされます。仮想メソッドは常にレイトバウンドです。コンパイラーは、実行時にバインドする実際のメソッドを解決するために追加のコードを挿入し、型の安全性をチェックします。したがって、サブタイプのポリモーフィズムは遅延バインディングを使用します。 リフレクションを使用してメソッドを呼び出すことは、遅延バインディングの例です。コンパイラではなく、これを実現するコードを記述します。(たとえば、COMコンポーネントの呼び出し。) VB.NETは、Option Strictがオフの場合、暗黙的な遅延バインディングをサポートします。オブジェクトは、Object型であると宣言された変数に割り当てられると、レイトバウンドされます。VBコンパイラは、実行時に適切なメソッドにバインドし、無効な呼び出しをキャッチするコードを挿入します。C#はこの機能をサポートしていません。 私は正しい方向に向かっていますか? デリゲートを呼び出し、インターフェイス参照を介してメソッドを呼び出すのはどうですか?それは初期バインディングですか、それとも遅延バインディングですか?

4
Microsoft.Net.Compilersの目的は何ですか?
このコンパイラの重要性は何ですか?それは必需品ですか、それともなしでできるのでしょうか?とにかく別のコンパイラを使用する目的は何ですか、それとも単なる未来的なプロジェクトですか?簡単な概要をいただければ幸いです。
83 c#  asp.net-mvc  vb.net 

7
静的メソッド継承の正しい代替手段は何ですか?
静的メソッドの継承がC#でサポートされていないことを理解しています。また、開発者がこの機能の必要性を主張する多くの議論(ここを含む)を読みました。典型的な応答は「静的なメンバーの継承が必要な場合、設計に欠陥があります」です。 OK、OOPは静的継承についても考えたくないので、それに対する私の明らかな必要性は私の設計のエラーを示していると結論付けなければなりません。しかし、私は立ち往生しています。私はこれを解決するためにいくつかの助けを本当にいただければ幸いです。これが課題です... 複雑な初期化コードをカプセル化する抽象基本クラス(Fruitと呼びましょう)を作成したいと思います。一部のコードは仮想メソッド呼び出しに依存するため、このコードをコンストラクターに配置することはできません。 Fruitは、他の具象クラス(Apple、Orange)に継承されます。各クラスは、インスタンスを作成および初期化するために、標準のファクトリメソッドCreateInstance()を公開する必要があります。 静的メンバーの継承が可能であれば、ファクトリメソッドを基本クラスに配置し、派生クラスへの仮想メソッド呼び出しを使用して、具象インスタンスを初期化する必要がある型を取得します。クライアントコードは、Apple.CreateInstance()を呼び出すだけで、完全に初期化されたAppleインスタンスを取得できます。 しかし、明らかにこれは不可能なので、同じ機能に対応するために私のデザインをどのように変更する必要があるかを誰かに説明してもらえますか。
83 c#  .net  inheritance  static 

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