คำถามติดแท็ก c#

C # (ออกเสียงว่า "ดูคม") เป็นภาษาการเขียนโปรแกรมหลายกระบวนทัศน์ในระดับสูงพิมพ์แบบคงที่พัฒนาโดย Microsoft รหัส C # มักกำหนดเป้าหมายกลุ่มเครื่องมือ. NET ของ Microsoft และรันไทม์ซึ่งรวมถึง. NET Framework, .NET Core และ Xamarin เป็นต้น ใช้แท็กนี้สำหรับคำถามเกี่ยวกับโค้ดที่เขียนในข้อกำหนดทางการของ C # หรือ C #

12
C # Sanitize ชื่อไฟล์
ฉันเพิ่งย้าย 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 …

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 ย้อนกลับและลบการโยกย้ายที่ไม่ดี
ฉันใช้ EF 6.0 สำหรับโครงการของฉันใน C # ด้วยการโยกย้ายและการปรับปรุงด้วยตนเอง ฉันมีการโยกย้ายประมาณ 5 บนฐานข้อมูล แต่ฉันรู้ว่าการโยกย้ายครั้งสุดท้ายไม่ดีและฉันไม่ต้องการ ฉันรู้ว่าฉันสามารถย้อนกลับไปยังการโยกย้ายครั้งก่อนได้ แต่เมื่อฉันเพิ่มการโยกย้าย (คงที่) ใหม่และเรียกใช้ Update-Database แม้แต่การโยกย้ายที่ไม่ดีก็ถูกนำไปใช้ ฉันพยายามย้อนกลับการโยกย้ายครั้งก่อนและลบไฟล์ด้วยการโยกย้ายที่ไม่ดี แต่เมื่อฉันพยายามเพิ่มการย้ายข้อมูลใหม่ฉันได้รับข้อผิดพลาดเมื่ออัปเดตฐานข้อมูลเนื่องจากไฟล์การโยกย้ายเสียหาย (โดยเฉพาะอย่างยิ่งรหัสบรรทัดแรกเปลี่ยนชื่อตาราง A เป็น B และเป็นบรรทัดถัดไป EF พยายามอัปเดตตารางด้วย ชื่อ A - อาจเป็นข้อบกพร่องของ EF) มีคำถามที่ฉันสามารถเรียกใช้ซึ่งจะบอก EF ว่า "ลืมการย้ายข้อมูลครั้งล่าสุดแบบที่ไม่เคยมีมาหรือไม่เลว" สิ่งที่ต้องการลบการโยกย้าย Edit1 ฉันพบวิธีแก้ปัญหาที่เหมาะสมสำหรับฉัน เปลี่ยนโมเดลให้อยู่ในสภาพดีและวิ่งAdd-Migration TheBadMigration -Forceได้ การดำเนินการนี้จะนำไปสู่การนั่งร้านใหม่ไม่ใช่การย้ายที่ใช้ อย่างไรก็ตามเรื่องนี้ยังไม่สามารถตอบคำถามเดิมได้อย่างสมบูรณ์ หากฉันอัปเดตฐานข้อมูลไปยังการโยกย้ายที่ไม่ดีฉันไม่พบวิธีที่ดีในการย้อนกลับและสร้างการย้ายข้อมูลใหม่ไม่รวมถึงการย้ายที่ไม่ดี ขอบคุณ

7
เยาะเย้ยวิธีการขยายด้วยขั้นต่ำ
ฉันมีส่วนต่อประสานก่อนหน้า ... public interface ISomeInterface { void SomeMethod(); } และฉันได้ขยายอินเทอร์เฟซนี้โดยใช้มิกซ์อิน ... public static class SomeInterfaceExtensions { public static void AnotherMethod(this ISomeInterface someInterface) { // Implementation here } } ฉันมีคลาสที่เรียกสิ่งนี้ซึ่งฉันต้องการทดสอบ ... public class Caller { private readonly ISomeInterface someInterface; public Caller(ISomeInterface someInterface) { this.someInterface = someInterface; } public void Main() { …

4
ทำไมคลาส XML-Serializable จึงต้องมี Constructor แบบไม่มีพารามิเตอร์
ฉันกำลังเขียนโค้ดเพื่อทำซีเรียลไลซ์เซชั่นของ 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(); } } ถ้าอาร์กิวเมนต์เป็นอินสแตนซ์ของคลาสที่ไม่มีตัวสร้างแบบไม่มีพารามิเตอร์จะมีข้อยกเว้น Unhandled Exception: System.InvalidOperationException: CSharpConsole.Foo ไม่สามารถทำให้เป็นอนุกรมได้เนื่องจากไม่มี Constructor แบบไม่มีพารามิเตอร์ ที่ System.Xml.Serialization.TypeDesc.CheckSupported () ที่ System.Xml.Serialization.TypeScope.GetTypeDesc (ประเภทประเภท MemberInfo sourc e, บูลีน directReference, บูลีน throwOnError) ที่ System.Xml.Serialization.TypeDesc.CheckSupported …

13
รับชื่อคอนโทรลเลอร์และแอ็คชันจากภายในคอนโทรลเลอร์?
สำหรับเว็บแอปพลิเคชันของเราฉันต้องบันทึกลำดับของรายการที่นำมาและแสดงขึ้นอยู่กับมุมมอง - หรือแม่นยำ - ตัวควบคุมและการกระทำที่สร้างมุมมอง (และรหัสผู้ใช้แน่นอน แต่นั่นไม่ใช่จุดที่นี่) แทนที่จะให้ตัวระบุในการดำเนินการควบคุมแต่ละตัว (เพื่อใช้สำหรับการเรียงลำดับมุมมองบางส่วนของเอาต์พุต DB) ฉันคิดว่ามันจะปลอดภัยและง่ายกว่าในการสร้างตัวระบุนี้โดยอัตโนมัติจากตัวควบคุมและวิธีการกระทำที่ได้รับ เรียกจาก ฉันจะได้รับชื่อของตัวควบคุมและการกระทำจากภายในวิธีการดำเนินการในตัวควบคุมได้อย่างไร หรือฉันต้องการภาพสะท้อนเพื่อสิ่งนั้น? ฉันคิดว่ามันค่อนข้างง่ายขอบคุณล่วงหน้า!

5
IIS Express ปิดเว็บไซต์ทำงานทันทีหลังจากหยุดแอปพลิเคชันเว็บ
ฉันใช้ visual studio 2012 ในวันแรกเมื่อฉันต้องการหยุดแอปพลิเคชันใน IDE แอปพลิเคชันยังคงทำงานบน IIS Express ฉันสามารถเรียกดูและทำงานกับแอปพลิเคชันที่ทำงานได้ แต่ตอนนี้ฉันทำไม่ได้ IIS ปิดแอปพลิเคชันทันทีถ้าฉันกดปุ่มหยุด เนื่องจากฉันจำได้ว่าฉันไม่ได้ทำการเปลี่ยนแปลงใด ๆ ในการตั้งค่า ฉันควรทำเช่นนั้นทำงานเหมือนวันแรก

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");

7
ฟอร์ม ASP.NET Core POST ส่งผลให้เกิดการตอบสนอง HTTP 415 Media Type ที่ไม่รองรับ
การส่งคำขอ POST HTTP แบบฟอร์ม ( Content-Type: application/x-www-form-urlencoded) ไปยังตัวควบคุมด้านล่างจะส่งผลให้เป็นHTTP 415การตอบสนองของMedia Type ที่ไม่รองรับ public class MyController : Controller { [HttpPost] public async Task&lt;IActionResult&gt; 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 …

5
ยกเว้นเครื่องหมายคำพูดคู่ในสตริง
สามารถใช้เครื่องหมายอัญประกาศคู่ดังนี้: string test = @"He said to me, ""Hello World"". How are you?"; แต่สิ่งนี้เกี่ยวข้องกับการเพิ่มอักขระ"ลงในสตริง มีฟังก์ชั่น C # หรือวิธีอื่นในการยกเว้นเครื่องหมายคำพูดคู่เพื่อไม่จำเป็นต้องเปลี่ยนสตริงหรือไม่?
173 c#  string  double-quotes 

5
ไม่สามารถใช้พารามิเตอร์ ref หรือ out ในการแสดงออกแลมบ์ดา
ทำไมคุณไม่สามารถใช้พารามิเตอร์ ref หรือ out ในนิพจน์แลมบ์ดา ฉันเจอข้อผิดพลาดในวันนี้และพบวิธีแก้ปัญหา แต่ฉันก็ยังสงสัยว่าทำไมนี่เป็นข้อผิดพลาดแบบรวบรวมเวลา CS1628 : ไม่สามารถใช้ในพารามิเตอร์ ref หรือ out 'พารามิเตอร์' ภายในวิธีที่ไม่ระบุชื่อนิพจน์แลมบ์ดาหรือนิพจน์แบบสอบถาม นี่คือตัวอย่างง่ายๆ: private void Foo() { int value; Bar(out value); } private void Bar(out int value) { value = 3; int[] array = { 1, 2, 3, 4, 5 }; int newValue = array.Where(a =&gt; a …
173 c#  lambda 

7
จะแปลงสตริงเป็น LINQ Expression Tree ได้อย่างไร
นี่เป็นเวอร์ชันดั้งเดิมของปัญหาดั้งเดิม ฉันมีชั้นเรียนที่เรียกว่าบุคคล: 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
วิธีคืนไฟล์ (FileContentResult) ใน ASP.NET WebAPI
ในการควบคุม 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(); //... …

8
วิธีแก้ไขไฟล์. csproj
เมื่อฉันรวบรวมไฟล์. csproj ของฉันโดยใช้. NET Framework 4.0 MSBUILD.EXE ไฟล์ฉันได้รับข้อผิดพลาด "lable01" ไม่พบในบริบทปัจจุบันของ "website01.csproj" ที่จริงฉันต้องเพิ่มทุกหน้า ASP.NET ด้วยการอ้างอิงของไฟล์รหัสหลังฉันทำเสร็จแล้วมันใช้งานได้ดี แต่ข้อผิดพลาดข้างต้นค้างอยู่ ฉันหวังว่ามันหมายความว่าฉันต้องเพิ่มชื่อฟอร์ม "LABLE01" ในไฟล์. csproj แต่ฉันไม่รู้จักไวยากรณ์ ใครก็ตามโปรดให้ฉันกับไวยากรณ์เพื่อเพิ่มชื่อฟอร์มในไฟล์. csproj
173 c#  .net  asp.net 

9
โยน HttpResponseException หรือส่งคืน Request สร้าง CreateErrorResponse ไหม?
หลังจากตรวจสอบข้อยกเว้นการจัดการบทความใน ASP.NET Web APIฉันสับสนนิดหน่อยว่าเมื่อใดที่จะโยนข้อยกเว้น vs ส่งคืนการตอบกลับข้อผิดพลาด ฉันยังสงสัยว่ามันเป็นไปได้ที่จะปรับเปลี่ยนการตอบสนองเมื่อวิธีการของคุณส่งคืนรูปแบบเฉพาะโดเมนแทนHttpResponseMessage... ดังนั้นการสรุปที่นี่คำถามของฉันตามด้วยรหัสบางกรณี #s: คำถาม คำถามเกี่ยวกับ Case # 1 ฉันควรใช้HttpResponseMessageแทนโมเดลโดเมนที่เป็นรูปธรรมเสมอเพื่อให้สามารถปรับแต่งข้อความได้หรือไม่ สามารถปรับแต่งข้อความได้หรือไม่หากคุณส่งคืนโมเดลโดเมนที่เป็นรูปธรรม? คำถามเกี่ยวกับ Case # 2,3,4 ฉันควรจะโยนข้อยกเว้นหรือตอบกลับข้อผิดพลาด? หากคำตอบคือ "มันขึ้นอยู่กับ" คุณสามารถให้สถานการณ์ / ตัวอย่างเมื่อใดที่จะใช้หนึ่งเทียบกับอีก ความแตกต่างระหว่างการขว้างปาคืออะไรHttpResponseExceptionVS Request.CreateErrorResponse? ผลลัพธ์ไปยังลูกค้าดูเหมือนกัน ... ฉันควรจะใช้HttpErrorเพื่อ "ห่อ" ข้อความตอบสนองในข้อผิดพลาด (ไม่ว่าจะเป็นข้อยกเว้นโยนหรือการตอบกลับข้อผิดพลาด)? ตัวอย่างกรณี // CASE #1 public Customer Get(string id) { var customer = _customerService.GetById(id); if (customer == …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.