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

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

3
C#はSystem.Typeをジェネリックパラメーターとして使用します
データベースで照会する必要のあるタイプのリスト(System.Type)があります。 このタイプごとに、次のextensionmethod(LinqToNhibernateの一部)を呼び出す必要があります。 Session.Linq<MyType>() しかし、私はMyTypeを持っていませんが、代わりにTypeを使用したいと思います。 私が持っているものは: System.Type typeOne; しかし、私は以下を実行することはできません: Session.Linq<typeOne>() タイプをジェネリックパラメーターとして使用するにはどうすればよいですか?
87 c#  generics  .net-4.0  types 

9
List.Add()スレッドセーフ
一般に、リストはスレッドセーフではないことを理解していますが、スレッドがリストに対して他の操作(トラバースなど)を実行しない場合、単にアイテムをリストに追加することに何か問題がありますか? 例: List<object> list = new List<object>(); Parallel.ForEach(transactions, tran => { list.Add(new object()); });
87 c#  asp.net 

1
Database.BeginTransactionとTransactions.TransactionScope
System.Transactions.TransactionScopeとEF6の違いは何Database.BeginTransactionですか? 誰かが小さな例を挙げたり、明確な違いがあるときにどちらを使用するかを説明したりできますか? PS:私のプロジェクトでは、EF6を使用しています。私はすでにドキュメントを読みましたが、あまり役に立ちませんでした。例も調べましたが、どちらかSqlConnection.BeginTransactionと言えば使用されており、MSはこれDatabase.BeginTransactionをEF6に導入しました。


10
クラスを使用するすべてのファイルにコード行を追加せずに、C#でクラス名のエイリアスを作成するにはどうすればよいですか?
クラス名のエイリアスを作成したい。次の構文は完璧です。 public class LongClassNameOrOneThatContainsVersionsOrDomainSpecificName { ... } public class MyName = LongClassNameOrOneThatContainsVersionOrDomainSpecificName; しかし、それはコンパイルされません。 例 注この例は、便宜上提供されています。システム全体の設計を変更することを提案して、この特定の問題を解決しようとしないでください。この例の存在または欠如は、元の質問を変更しません。 一部の既存のコードは、静的クラスの存在に依存しています。 public static class ColorScheme { ... } この配色は、Outlook2003の配色です。Outlook 2003の配色を維持しながら、Outlook2007の配色を導入したいと思います。 public static class Outlook2003ColorScheme { ... } public static class Outlook2007ColorScheme { ... } しかし、私はまだコードがと呼ばれる静的クラスの存在に依存しているという事実に直面していColorSchemeます。私の最初の考えは、次のColorSchemeいずれOutlook2003かから継承するクラスを作成することでしたOutlook2007。 public static class ColorScheme : Outlook2007ColorScheme { } ただし、静的クラスから継承することはできません。 私の次の考えは静的ColorSchemeクラスを作成することでしたが、makeOutlook2003ColorSchemeとOutlook2007ColorSchemeclassesは非静的です。次に、静的ColorSchemeクラスの静的変数は、次のいずれかの「真の」配色を指すことができます。 …
87 c#  class-design 

7
LinqSelectでタプルを作成する
私はC#と.NET Framework 4.5.1を使用して、Entity Framework6.1.3を使用してSQLServerデータベースからデータを取得しています。 私はこれを持っています: codes = codesRepo.SearchFor(predicate) .Select(c => new Tuple<string, byte>(c.Id, c.Flag)) .ToList(); そして、それを実行すると、次のメッセージが表示されます。 LINQ to Entitiesでは、パラメーターのないコンストラクターと初期化子のみがサポートされています。 私が見つけたすべての例はほとんどこのようなものであるため、タプルをどのように作成する必要があるのか​​わかりません。 私はこれを試しました: codes = codesRepo.SearchFor(predicate) .Select(c => Tuple.Create(c.Id, c.Flag)) .ToList(); そして、このエラーが発生します: LINQ to Entitiesは、メソッド 'System.Tuple`2 [System.String、System.Byte] Create [String、Byte](System.String、Byte)'メソッドを認識せず、このメソッドをストア式に変換できません。 問題はどこだ?

4
ランダムなブール値を生成する最速の方法
したがって、C#でランダムブール値を作成する方法はいくつかあります。 Random.Next()の使用: rand.Next(2) == 0 Random.NextDouble()の使用: rand.NextDouble() > 0.5 本当に違いはありますか?もしそうなら、どちらが実際に優れたパフォーマンスを持っていますか?それとも私が見なかった別の方法がありますか、それはさらに速いかもしれませんか?

14
ファイルまたはアセンブリを読み込めませんでした 'Microsoft.Build.Framework'(VS 2017)
コマンド「update-database」を実行しようとすると、次の例外が発生します。 '-Verbose'フラグを指定して、ターゲットデータベースに適用されているSQLステートメントを表示します。System.IO.FileNotFoundException:ファイルまたはアセンブリ 'Microsoft.Build.Framework、Version = 15.1.0.0、Culture = neutral、PublicKeyToken = b03f5f7f11d50a3a'またはその依存関係の1つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。ファイル名: 'Microsoft.Build.Framework、Version = 15.1.0.0、Culture = neutral、PublicKeyToken = b03f5f7f11d50a3a' WRN:アセンブリバインディングログがオフになっています。アセンブリバインド失敗ログを有効にするには、レジストリ値[HKLM \ Software \ Microsoft \ Fusion!EnableLog](DWORD)を1に設定します。注:アセンブリバインド失敗ログに関連するパフォーマンスの低下があります。この機能をオフにするには、レジストリ値[HKLM \ Software \ Microsoft \ Fusion!EnableLog]を削除します。 ファイルまたはアセンブリ 'Microsoft.Build.Framework、Version = 15.1.0.0、Culture = neutral、PublicKeyToken = b03f5f7f11d50a3a'またはその依存関係の1つを読み込めませんでした。指定されたファイルが見つかりません。`


6
別のアセンブリのクラス名からタイプを解決する
クラスの型を解決する必要があるメソッドがあります。このクラスは、次のような名前空間を持つ別のアセンブリに存在します。 MyProject.Domain.Model 私は以下を実行しようとしています: Type.GetType("MyProject.Domain.Model." + myClassName); これは、このアクションを実行しているコードが、解決しようとしているタイプのクラスと同じアセンブリにある場合にうまく機能しますが、クラスが別のアセンブリにある場合、このコードは失敗します。 このタスクを実行するためのはるかに優れた方法があると確信していますが、探しているクラスのタイプを解決するためにアセンブリを解決し、内部の名前空間をトラバースした経験はあまりありません。このタスクをより優雅に達成するためのアドバイスやヒントはありますか?
87 c#  .net  reflection 

3
DLLには何が含まれ、どのように機能しますか?
私は常にC#コードでDLLを参照していますが、それらはまだ謎のままであり、明確にしておきたいと思います。これは、DLLに関する質問の一種の頭脳ダンプです。 DLLは動的にリンクされたライブラリであると理解しています。つまり、別のプログラムが実行時にこのライブラリにアクセスして「機能」を取得できます。ただし、Web.dllとBusiness.dll(Web.dllはフロントエンド機能でありBusiness.dll、タイプとメソッドを参照する)を含む次のASP.NETプロジェクトを検討してください。 どの時点でWeb.dll動的にリンクしBusiness.dllますか?Word(など)を使用しているときに、一見小さなタスクのためにWindows HDDがスラッシングしていることに気づきましたが、Wordがオフになり、他のDLLの機能に動的にリンクしていると思いますか? 1a。さらに、DLLをロードしてリンクするものは何ですか?OSまたは.NETフレームワークなどのランタイムフレームワークですか? 1b。「リンク」のプロセスは何ですか?互換性チェックは行われますか?同じメモリにロードしますか?リンクは実際にはどういう意味ですか? DLL内のコードを実際に実行するものは何ですか?プロセッサによって実行されますか、それともプロセッサがDLL内のコードを理解する前に、変換またはコンパイルの別の段階がありますか? 2a。C#.NETに組み込まれているDLLの場合、これを実行しているのは何ですか:.NETフレームワークまたはオペレーティングシステムを直接使用していますか? LinuxのDLLはWindowsシステムで動作しますか(そのようなものが存在する場合)、それともオペレーティングシステム固有ですか? DLLは特定のフレームワークに固有ですか?C#.NETを使用して構築されたDLLは、たとえばBorland C ++で構築されたDLLで使用できますか? 4a。4の答えが「いいえ」の場合、DLLのポイントは何ですか?さまざまなフレームワークがリンクされたファイルに独自の形式を使用しないのはなぜですか?例:.NETに組み込まれている.exeは、.abcのファイルタイプがコードにリンクできるものであることを認識しています。 Web.dll/のBusiness.dll例に戻ると、参照する必要のある顧客のクラスタイプを取得Business.dllしWeb.dllます。これはBusiness.dll、顧客クラスが実際に何であるかに関するある種の仕様が含まれていることを意味する必要があります。たとえば、Business.dllファイルをDelphiでコンパイルした場合、C#はそれを理解して顧客クラスを作成できますか、または「申し訳ありませんが、別のDelphi DLLからのみ使用できます」というヘッダー情報などがありますか? ? 5a。同じことがメソッドにも当てはまります。CreateInvoice()DLLにメソッドを記述し、それをC ++でコンパイルしてから、C#からアクセスして実行できますか?何が私にこれをやめさせるか、または許しますか? DLLハイジャックに関しては、置換(不良)DLLには、ハイジャックされているものとまったく同じメソッドシグネチャとタイプが含まれている必要があります。元のDLLで使用可能なメソッドを見つけることができれば、これを行うのは難しいことではないと思います。 6a。別のDLLにアクセスできるかどうかをC#プログラムで決定しているのは何ですか?ハイジャックされたDLLに元のDLLとまったく同じメソッドとタイプが含まれていても、別の言語でコンパイルされている場合、それは機能しますか? DLLのインポートとDLLの登録とは何ですか?
87 c#  .net  dll 

13
IISで.svcファイルにアクセスするときのHTTP404
最近、Visual Studio 2008からテストしたときに正常に機能するWCFサービスを作成しました。しかし、プロジェクトをIISに展開し、IISから.svcファイルにアクセスしようとすると、次のエラーが発生します。 "Server Error in '/' Application.The resource cannot be found. " 私は過去4日間この問題を抱えています。 IISマネージャーのハンドラーマッピングで、.svcの2つのエントリを確認できます。 svc-Integrated and svc-ISAPI-2.0
87 c#  .net  wcf 

10
大規模な.NETプロジェクトで多言語/グローバリゼーションを実装するための最良の方法
私はまもなく大規模なc#プロジェクトに取り組み、最初から多言語サポートを組み込みたいと考えています。私は遊んだことがあり、言語ごとに個別のリソースファイルを使用してそれを機能させることができ、次にリソースマネージャーを使用して文字列をロードします。 私が調べることができる他の良いアプローチはありますか?

5
.NETからSSISパッケージを実行する方法は?
私は最終的にパラメータも渡したいSSISパッケージを持っています。これらのパラメータは.NETアプリケーション(VBまたはC#)から取得されるので、誰かがこれを行う方法を知っているか、もっと良いのは役立つヒントのあるWebサイトです。それを行う方法について。 したがって、基本的には、.NETからSSISパッケージを実行して、その中で使用できるSSISパッケージパラメータを渡します。 たとえば、SSISパッケージはSQLデータベースへのフラットファイルのインポートを使用しますが、ファイルのパスと名前は、.Netアプリケーションから渡されるパラメーターである可能性があります。
87 c#  .net  sql-server  vb.net  ssis 

13
System.Security.Cryptography.RandomNumberGeneratorの代わりにC#クラスSystem.Randomを使用するのはなぜですか?
System.Security.Cryptography.RandomNumberGenerator(またはRandomNumberGeneratorは抽象的であるため、そのサブクラス)の暗号的に安全な乱数ジェネレーターを常に使用するのではなく、System.Randomの「標準」乱数ジェネレーターを使用するのはなぜですか? ネイトローソンは彼のGoogleTechTalkプレゼンテーションで私たちに語っています " 13:11分の CryptoStrikesBack」で、Python、Java、C#の「標準」乱数ジェネレーターを使用せず、代わりに暗号的に安全なバージョンを使用するます。 2つのバージョンの乱数ジェネレーターの違いを知っています(質問101337を参照))。 しかし、安全な乱数ジェネレーターを常に使用するとは限らない理由は何ですか?System.Randomを使用する理由 おそらくパフォーマンス?
87 c#  .net  cryptography  random 

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