คำถามติดแท็ก anonymous-types

8
คลาสที่ไม่ระบุชื่อสามารถใช้อินเตอร์เฟสได้หรือไม่
เป็นไปได้ไหมที่จะมีประเภทที่ไม่ระบุตัวตนใช้งานอินเตอร์เฟส ฉันมีรหัสชิ้นหนึ่งที่ฉันต้องการใช้งาน แต่ไม่รู้ว่าจะทำอย่างไร ฉันมีสองคำตอบที่อาจปฏิเสธหรือสร้างคลาสที่ใช้ส่วนต่อประสานสร้างอินสแตนซ์ใหม่ของสิ่งนั้น มันไม่เหมาะจริงๆ แต่ฉันสงสัยว่าถ้ามีกลไกในการสร้างคลาสไดนามิกที่บางบนอินเทอร์เฟซซึ่งจะทำให้ง่ายขึ้น public interface DummyInterface { string A { get; } string B { get; } } public class DummySource { public string A { get; set; } public string C { get; set; } public string D { get; set; } } public class Test …

22
รายการทั่วไปของคลาสที่ไม่ระบุชื่อ
ใน C # 3.0 คุณสามารถสร้างคลาสที่ไม่ระบุชื่อด้วยไวยากรณ์ต่อไปนี้ var o = new { Id = 1, Name = "Foo" }; มีวิธีการเพิ่มคลาสที่ไม่ระบุชื่อเหล่านี้ลงในรายการทั่วไปหรือไม่ ตัวอย่าง: var o = new { Id = 1, Name = "Foo" }; var o1 = new { Id = 2, Name = "Bar" }; List<var> list = new List<var>(); list.Add(o); list.Add(o1); …

8
ฉันจะทำให้ชนิดที่ไม่ระบุชื่อ C # เป็นอนุกรมเป็นสตริง JSON ได้อย่างไร
ฉันพยายามใช้รหัสต่อไปนี้เพื่อทำให้เป็นประเภทที่ไม่ระบุชื่อกับ JSON: var serializer = new DataContractJsonSerializer(thing.GetType()); var ms = new MemoryStream(); serializer.WriteObject(ms, thing); var json = Encoding.Default.GetString(ms.ToArray()); อย่างไรก็ตามฉันได้รับข้อยกเว้นต่อไปนี้เมื่อถูกดำเนินการ: พิมพ์ '<> f__AnonymousType1`3 [System.Int32, System.Int32, System.Object []]' ไม่สามารถทำให้เป็นอนุกรม พิจารณาทำเครื่องหมายด้วยแอ็ตทริบิวต์ DataContractAttribute และทำเครื่องหมายสมาชิกทั้งหมดที่คุณต้องการต่อเนื่องกับแอ็ตทริบิวต์ DataMemberAttribute ดูเอกสารประกอบ Microsoft .NET Framework สำหรับประเภทอื่น ๆ ที่รองรับ ฉันไม่สามารถใช้คุณลักษณะกับประเภทที่ไม่ระบุตัวตน (เท่าที่ฉันรู้) มีวิธีอื่นในการทำซีเรียลไลเซชั่นนี้หรือไม่

12
ประเภท Dynamic Anonymous ใน Razor ทำให้ RuntimeBinderException
ฉันได้รับข้อผิดพลาดต่อไปนี้: 'object' ไม่มีคำนิยามสำหรับ 'RatingName' เมื่อคุณดูประเภทไดนามิกนิรนามจะมี RatingName อย่างชัดเจน ฉันรู้ว่าฉันสามารถทำได้ด้วย Tuple แต่ฉันต้องการที่จะเข้าใจว่าทำไมข้อผิดพลาดเกิดขึ้น

8
LINQ เลือก Distinct ที่มีประเภท Anonymous
ดังนั้นฉันมีชุดของวัตถุ ประเภทที่แน่นอนไม่สำคัญ จากนั้นฉันต้องการแยกคู่ที่ไม่ซ้ำกันของคู่ของคุณสมบัติเฉพาะดังนั้น: myObjectCollection.Select(item=>new { Alpha = item.propOne, Bravo = item.propTwo } ).Distinct(); ดังนั้นคำถามของฉันคือ: ความแตกต่างในกรณีนี้จะใช้วัตถุเริ่มต้นเท่ากับ (ซึ่งจะไร้ประโยชน์กับฉันเนื่องจากวัตถุแต่ละชิ้นเป็นของใหม่) หรือสามารถบอกให้ทำสิ่งต่าง ๆ ได้ (ในกรณีนี้ค่าที่เท่ากันของ Alpha และ Bravo => อินสแตนซ์ที่เท่ากัน)? มีวิธีใดบ้างที่จะบรรลุผลดังกล่าวหากไม่ได้ผล

10
จะส่งประเภทที่ไม่ระบุตัวตนเป็นพารามิเตอร์ได้อย่างไร
ฉันจะส่งประเภทที่ไม่ระบุชื่อเป็นพารามิเตอร์ไปยังฟังก์ชันอื่น ๆ ได้อย่างไร ลองพิจารณาตัวอย่างนี้: var query = from employee in employees select new { Name = employee.Name, Id = employee.Id }; LogEmployees(query); ตัวแปรqueryที่นี่ไม่มีประเภทที่แข็งแกร่ง ฉันจะกำหนดLogEmployeesฟังก์ชันให้ยอมรับได้อย่างไร? public void LogEmployees (? list) { foreach (? item in list) { } } กล่าวอีกนัยหนึ่งฉันควรใช้อะไรแทน?เครื่องหมาย

5
จะเข้าถึงทรัพย์สินประเภทนิรนามใน C # ได้อย่างไร?
ฉันมีสิ่งนี้: List<object> nodes = new List<object>(); nodes.Add( new { Checked = false, depth = 1, id = "div_" + d.Id }); ... และฉันสงสัยว่าฉันสามารถคว้าคุณสมบัติ "ตรวจสอบแล้ว" ของวัตถุที่ไม่ระบุตัวตนได้หรือไม่ ฉันไม่แน่ใจว่าจะเป็นไปได้ไหม พยายามทำสิ่งนี้: if (nodes.Any(n => n["Checked"] == false)) ... แต่มันไม่ได้ผล ขอบคุณ

15
การส่งคืนประเภทที่ไม่ระบุตัวตนใน C #
ฉันมีแบบสอบถามที่ส่งคืนประเภทที่ไม่ระบุตัวตนและแบบสอบถามอยู่ในวิธีการ คุณเขียนสิ่งนี้อย่างไร: public "TheAnonymousType" TheMethod(SomeParameter) { using (MyDC TheDC = new MyDC()) { var TheQueryFromDB = (.... select new { SomeVariable = ...., AnotherVariable = ....} ).ToList(); return "TheAnonymousType"; } }

3
วิธีการไดนามิกคลาส Anonymous ใหม่
ใน C # 3.0 คุณสามารถสร้างคลาสที่ไม่ระบุชื่อด้วยไวยากรณ์ต่อไปนี้ var o1 = new { Id = 1, Name = "Foo" }; มีวิธีไดนามิกในการสร้างคลาสที่ไม่ระบุชื่อเหล่านี้ให้กับตัวแปรหรือไม่? ตัวอย่าง: var o1 = new { Id = 1, Name = "Foo" }; var o2 = new { SQ = 2, Birth = DateTime.Now }; ตัวอย่างการสร้างแบบไดนามิก: var o1 = DynamicNewAnonymous(new NameValuePair("Id", 1), …

8
C # 'ไดนามิก' ไม่สามารถเข้าถึงคุณสมบัติจากชนิดที่ไม่ระบุชื่อที่ประกาศในแอสเซมบลีอื่น
โค้ดด้านล่างนี้ทำงานได้ดีตราบใดที่ฉันได้เรียนในการชุมนุมเช่นเดียวกับระดับClassSameAssembly Programแต่เมื่อฉันย้ายชั้นเรียนClassSameAssemblyไปยังชุดประกอบแยกต่างหากRuntimeBinderException(ดูด้านล่าง) จะถูกโยนทิ้ง สามารถแก้ไขได้หรือไม่? using System; namespace ConsoleApplication2 { public static class ClassSameAssembly { public static dynamic GetValues() { return new { Name = "Michael", Age = 20 }; } } internal class Program { private static void Main(string[] args) { var d = ClassSameAssembly.GetValues(); Console.WriteLine("{0} is {1} years old", …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.