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

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

12
C#サニタイズファイル名
最近、たくさんのMP3をさまざまな場所からリポジトリに移動しています。ID3タグを使用して新しいファイル名を作成していました(おかげで、TagLib-Sharp!)System.NotSupportedException。 「指定されたパスの形式はサポートされていません。」 これはFile.Copy()またはによって生成されましたDirectory.CreateDirectory()。 私のファイル名をサニタイズする必要があることを理解するのに長い時間はかかりませんでした。だから私は明白なことをしました: public static string SanitizePath_(string path, char replaceChar) { string dir = Path.GetDirectoryName(path); foreach (char c in Path.GetInvalidPathChars()) dir = dir.Replace(c, replaceChar); string name = Path.GetFileName(path); foreach (char c in Path.GetInvalidFileNameChars()) name = name.Replace(c, replaceChar); return dir + name; } 驚いたことに、私は例外を受け続けました。「:」はPath.GetInvalidPathChars()パスのルートで有効であるため、のセットには含まれていないことが判明しました。それは理にかなっていると思いますが、これはかなり一般的な問題でなければなりません。パスをサニタイズする短いコードを誰かが持っていますか?私はこれを最も徹底的に考え出しましたが、おそらくやり過ぎだと感じています。 // replaces invalid characters with replaceChar …

9
追加のViewDataを厳密に型指定された部分ビューに渡す
ProductImageを使用する強く型付けされたパーシャルビューがあり、それがレンダリングされるときに、それを含むページで動的に作成する追加のViewDataも提供したいと考えています。強く型付けされたオブジェクトとカスタムViewDataの両方をRenderPartial呼び出しで部分ビューに渡すにはどうすればよいですか? var index = 0; foreach (var image in Model.Images.OrderBy(p => p.Order)) { Html.RenderPartial("ProductImageForm", image); // < Pass 'index' to partial index++; }

7
Entity Frameworkはロールバックし、不適切な移行を削除します
手動での移行と更新を伴うC#のプロジェクトにEF 6.0を使用しています。データベースに約5つの移行がありますが、最後の移行は不適切であり、望ましくないことに気付きました。以前の移行にロールバックできることはわかっていますが、新しい(修正された)移行を追加してUpdate-Databaseを実行すると、不正な移行も適用されます。 以前の移行にロールバックして、移行が不適切なファイルを削除しようとしました。しかし、その後、新しい移行を追加しようとすると、移行ファイルが破損しているため、データベースの更新時にエラーが発生します(より具体的には、コードの最初の行でテーブルAをBに名前変更し、次の行です)。EFは名前A-多分それはいくつかのEFバグです)。 私が実行できるクエリはありますか?これは、EFに「最後の移行が存在しなかったように忘れて、それが悪かった」のようなものを伝えるでしょうか?Remove-Migrationのようなもの。 Edit1 自分に適したソリューションを見つけました。モデルを良好な状態に変更して実行しAdd-Migration TheBadMigration -Forceます。これにより、適用されていない最後のマイグレーションが再足場されます。 とにかく、これはまだ元の質問に完全には答えていません。データベースを不正な移行に更新した場合、不良な移行を除いて、新しい移行をロールバックして作成する方法が見つかりませんでした。 ありがとう

4
XMLシリアル化可能クラスにパラメーターのないコンストラクターが必要な理由
Xmlシリアル化を行うコードを書いています。以下の機能付き。 public static string SerializeToXml(object obj) { XmlSerializer serializer = new XmlSerializer(obj.GetType()); using (StringWriter writer = new StringWriter()) { serializer.Serialize(writer, obj); return writer.ToString(); } } 引数がパラメーターなしのコンストラクターのないクラスのインスタンスである場合、例外がスローされます。 未処理の例外:System.InvalidOperationException:CSharpConsole.Fooにはパラメーターのないコンストラクターがないため、シリアル化できません。System.Xml.Serialization.ModelScope.GetTypeModel(Type type、System.Xml.Serialization.TypeDesc.CheckSupported()でSystem.Xml.Serialization.TypeScope.GetTypeDesc(Type type、MemberInfo sourc e、Boolean directReference、Boolean throwOnError)でSystem.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(Type type、XmlRootAttribute root、String defaultNamespace)のSystem.Xml.Serialization.XmlSerializer..ctor(Type type、String defaultName space)のSystem.Xml.Serializationのブール値の直接参照)。 XmlSerializer..ctor(タイプタイプ) XMLのシリアル化を成功させるために、パラメーターのないコンストラクターが必要なのはなぜですか? 編集:cfedukeの回答に感謝します。パラメーターなしのコンストラクターは、プライベートまたは内部にすることができます。

13
コントローラ内からコントローラとアクション名を取得しますか?
私たちのWebアプリケーションでは、ビューに応じて、または正確に、ビューに応じてコントローラーとアクション(およびユーザーIDはもちろん、ここでは重要ではありません)に応じて、フェッチおよび表示されたアイテムの順序を保存する必要があります。 各コントローラーアクションで自分自身に識別子を与えるだけでなく(ビューに依存するDB出力の並べ替えに使用するため)、コントローラーと取得するアクションメソッドからこの識別子を自動的に作成する方が安全で簡単だと思いましたから呼ばれた。 コントローラーのアクションメソッド内からコントローラーとアクションの名前を取得するにはどうすればよいですか?それとも反射が必要ですか?私はそれがかなり簡単であると思います、事前に感謝します!

5
IIS ExpressはWebアプリケーションを停止した後、すぐに実行中のサイトをシャットダウンします
IDEでアプリケーションを停止したい最初の日にVisual Studio 2012を使用しています。アプリケーションはまだIIS Expressで実行されており、実行中のアプリケーションを参照して操作できましたが、今はできません。IIS停止ボタンを押すとすぐにアプリケーションをシャットダウンします。覚えているので、設定を変更しませんでした。最初の日と同じように実行するにはどうすればよいですか。

7
ASP.NET CoreフォームのPOSTでHTTP 415 Unsupported Media Type応答が発生する
Content-Type: application/x-www-form-urlencoded以下のコントローラーにフォームPOST HTTPリクエスト()を送信すると、HTTP 415 Unsupported Media Typeレスポンスが返されます。 public class MyController : Controller { [HttpPost] public async Task<IActionResult> Submit([FromBody] MyModel model) { //... } } フォームポストHTTPヘッダー: POST /submit HTTP/1.1 Host: example.com:1337 Connection: keep-alive Content-Length: 219 Pragma: no-cache Cache-Control: no-cache Origin: https://example.com:1337 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 …

5
文字列内の二重引用符をエスケープする
二重引用符は次のようにエスケープできます。 string test = @"He said to me, ""Hello World"". How are you?"; しかし、これには"文字列に文字を追加することが含まれます。文字列を変更する必要がないように、二重引用符をエスケープするC#関数または他の方法はありますか?
173 c#  string  double-quotes 

7
文字列を同等のLINQ式ツリーに変換する方法は?
これは、元の問題を簡略化したバージョンです。 Personというクラスがあります。 public class Person { public string Name { get; set; } public int Age { get; set; } public int Weight { get; set; } public DateTime FavouriteDay { get; set; } } ...そしてインスタンスを言うことができます: var bob = new Person { Name = "Bob", Age = 30, Weight = …
173 c#  lambda  antlr  dsl  predicate 

6
ASP.NET WebAPIでファイル(FileContentResult)を返す方法
通常のMVCコントローラーでは、pdfをで出力できますFileContentResult。 public FileContentResult Test(TestViewModel vm) { var stream = new MemoryStream(); //... add content to the stream. return File(stream.GetBuffer(), "application/pdf", "test.pdf"); } しかし、どうすればそれをに変更できApiControllerますか? [HttpPost] public IHttpActionResult Test(TestViewModel vm) { //... return Ok(pdfOutput); } これが私が試したものですが、うまくいかないようです。 [HttpGet] public IHttpActionResult Test() { var stream = new MemoryStream(); //... var content = new StreamContent(stream); …

8
.csprojファイルを編集する方法
.NET Framework 4.0のMSBUILD.EXEファイルを使用して.csprojファイルをコンパイルすると、「website01.csproj」の現在のコンテキストでエラー「lable01」が見つかりません。 実際には、コードビハインドファイルの参照を含むすべてのASP.NETページを追加する必要があります。これは完了しました。問題なく動作していますが、上記のエラーは保留中です。 その.csprojファイルにフォーム名「LABLE01」を追加する必要があることを意味しますが、構文がわかりません。誰でも私に.csprojファイルにフォーム名を追加するための構文を提供してください。
173 c#  .net  asp.net 

9
HttpResponseExceptionをスローするか、Request.CreateErrorResponseを返しますか?
ASP.NET Web APIでの例外処理の記事を確認した後、例外をスローするタイミングとエラーレスポンスを返すタイミングについて少し混乱しています。メソッドがドメイン固有のモデルではなくHttpResponseMessage...を返すときに応答を変更できるかどうかも疑問に思っています。 だから、ここで要約すると、私の質問の後にケース番号付きのコードが続きます: ご質問 ケース#1に関する質問 HttpResponseMessageメッセージをカスタマイズできるように、具体的なドメインモデルではなく常に使用する必要がありますか? 具体的なドメインモデルを返す場合、メッセージをカスタマイズできますか? ケース#2、3、4に関する質問 例外をスローするか、エラー応答を返す必要がありますか?答えが「依存する」である場合、どちらを使用するかについて状況/例を挙げられますか。 投げHttpResponseExceptionvs はどう違いRequest.CreateErrorResponseますか?クライアントへの出力は同じようです... HttpErrorエラーに応答メッセージを「ラップ」するために常に使用する必要がありますか(例外がスローされるか、エラー応答が返されるか)。 ケースサンプル // CASE #1 public Customer Get(string id) { var customer = _customerService.GetById(id); if (customer == null) { var notFoundResponse = new HttpResponseMessage(HttpStatusCode.NotFound); throw new HttpResponseException(notFoundResponse); } //var response = Request.CreateResponse(HttpStatusCode.OK, customer); //response.Content.Headers.Expires = new DateTimeOffset(DateTime.Now.AddSeconds(300)); return …

15
AppSettingsは.configファイルから値を取得します
設定ファイルの値にアクセスできません。 Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); var clientsFilePath = config.AppSettings.Settings["ClientsFilePath"].Value; // the second line gets a NullReferenceException .configファイル: <?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <!-- ... --> <add key="ClientsFilePath" value="filepath"/> <!-- ... --> </appSettings> </configuration> どうすればいいですか?

15
単一のメソッドを持つクラス—最善のアプローチ?
たとえば、単一の機能を実行するためのクラスがあるとします。機能を実行した後、破棄することができます。これらのアプローチのいずれかを選ぶ理由はありますか? // Initialize arguments in constructor MyClass myObject = new MyClass(arg1, arg2, arg3); myObject.myMethod(); // Pass arguments to method MyClass myObject = new MyClass(); myObject.myMethod(arg1, arg2, arg3); // Pass arguments to static method MyClass.myMethod(arg1, arg2, arg3); さまざまな状況のガイドラインを取得しようとするために、詳細について意図的に漠然としていました。しかし、私はMath.random()のような単純なライブラリ関数を実際には考えていませんでした。特定の複雑なタスクを実行するクラスをもっと考えていますが、それを行うには1つの(パブリック)メソッドのみが必要です。
172 c#  java  oop  static-methods 

2
IEnumerable <KeyValuePair <>>から辞書を再作成する
を返すメソッドがありますがIEnumerable&lt;KeyValuePair&lt;string, ArrayList&gt;&gt;、一部の呼び出し元は、メソッドの結果を辞書にする必要があります。をに変換しIEnumerable&lt;KeyValuePair&lt;string, ArrayList&gt;&gt;てDictionary&lt;string, ArrayList&gt;使用できるようにするにはどうすればよいTryGetValueですか? 方法: public IEnumerable&lt;KeyValuePair&lt;string, ArrayList&gt;&gt; GetComponents() { // ... yield return new KeyValuePair&lt;string, ArrayList&gt;(t.Name, controlInformation); } 発信者: Dictionary&lt;string, ArrayList&gt; actual = target.GetComponents(); actual.ContainsKey("something");

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