คำถามติดแท็ก unity-container

7
กรอบงาน C # DI / IoC หลักเปรียบเทียบได้อย่างไร [ปิด]
ปิดปิดคำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ เมื่อมีความเสี่ยงในการก้าวเข้าสู่ดินแดนสงครามศักดิ์สิทธิ์จุดแข็งและจุดอ่อนของกรอบ DI / IoC ที่ได้รับความนิยมเหล่านี้คืออะไรและใครจะถือว่าดีที่สุดได้อย่างง่ายดาย .. : Ninject เอกภาพ Castle.Windsor Autofac StructureMap มี DI / IoC Frameworks อื่น ๆ สำหรับ C # ที่ฉันไม่ได้ระบุไว้ที่นี่หรือไม่? ในบริบทของกรณีการใช้งานของฉันฉันกำลังสร้างแอป WPF ของลูกค้าและโครงสร้างพื้นฐานบริการ WCF / SQL ใช้งานง่าย (โดยเฉพาะอย่างยิ่งในแง่ของไวยากรณ์ที่ชัดเจนและรัดกุม) เอกสารที่สอดคล้องกันการสนับสนุนชุมชนที่ดีและประสิทธิภาพเป็นปัจจัยสำคัญทั้งหมด ในการเลือกของฉัน ปรับปรุง: ทรัพยากรและคำถามซ้ำ ๆ ที่อ้างถึงดูเหมือนจะล้าสมัยใครที่มีความรู้ในกรอบเหล่านี้จะออกมาข้างนอกและให้ข้อมูลเชิงลึกที่แท้จริงบ้างไหม? ฉันตระหนักว่าความคิดเห็นส่วนใหญ่ในเรื่องนี้มีแนวโน้มที่จะลำเอียง แต่ฉันหวังว่าจะมีคนใช้เวลาศึกษากรอบการทำงานเหล่านี้ทั้งหมดและมีการเปรียบเทียบวัตถุประสงค์อย่างน้อยโดยทั่วไป ฉันค่อนข้างเต็มใจที่จะทำการสอบสวนของตัวเองหากยังไม่เคยทำมาก่อน แต่ฉันคิดว่านี่เป็นสิ่งที่คนอย่างน้อยสองสามคนได้ทำไปแล้ว อัปเดตที่สอง: หากคุณมีประสบการณ์กับภาชนะ …

7
ใครสามารถอธิบาย Microsoft Unity ได้บ้าง
ฉันได้อ่านบทความเกี่ยวกับ MSDN เกี่ยวกับ Unity (Dependency Injection, Inversion of Control) แต่ฉันคิดว่าฉันต้องการมันอธิบายในคำศัพท์ง่ายๆ (หรือตัวอย่างง่ายๆ) ฉันคุ้นเคยกับรูปแบบ MVPC (เราใช้ที่นี่) แต่ฉันก็ยังไม่เข้าใจสิ่งที่เป็นเอกภาพจริงๆและฉันคิดว่ามันเป็นขั้นตอนต่อไปในการออกแบบแอปพลิเคชันของเรา

5
มีรูปแบบสำหรับการเริ่มต้นวัตถุที่สร้างผ่านคอนเทนเนอร์ DI หรือไม่
ฉันพยายามรับ Unity เพื่อจัดการการสร้างวัตถุของฉันและฉันต้องการมีพารามิเตอร์การกำหนดค่าเริ่มต้นบางอย่างที่ไม่รู้จักจนกระทั่งเวลาใช้งาน: ในขณะนี้วิธีเดียวที่ฉันสามารถคิดวิธีทำคือมีวิธี Init บนอินเทอร์เฟซ interface IMyIntf { void Initialize(string runTimeParam); string RunTimeParam { get; } } จากนั้นให้ใช้ (ใน Unity) ฉันจะทำสิ่งนี้: var IMyIntf = unityContainer.Resolve<IMyIntf>(); IMyIntf.Initialize("somevalue"); ในสถานการณ์สมมตินี้runTimeParamจะกำหนดพารามิเตอร์ขณะใช้งานโดยยึดตามข้อมูลผู้ใช้ กรณีเล็ก ๆ น้อย ๆ ที่นี่เพียงคืนค่าrunTimeParamแต่ในความเป็นจริงพารามิเตอร์จะเป็นชื่อไฟล์และวิธีการเริ่มต้นจะทำอะไรกับไฟล์ สิ่งนี้สร้างปัญหาจำนวนหนึ่ง ได้แก่ Initializeวิธีนี้มีอยู่ในส่วนต่อประสานและสามารถเรียกได้หลายครั้ง การตั้งธงในการดำเนินการและการขว้างปาข้อยกเว้นในการเรียกซ้ำInitializeดูเหมือนว่าวิธีที่อุ้ยอ้าย เมื่อถึงจุดที่ฉันแก้ไขอินเทอร์เฟซของฉันฉันไม่ต้องการรู้อะไรเกี่ยวกับการใช้งาน IMyIntfเมื่อมาถึงจุดที่ผมแก้ไขอินเตอร์เฟซของฉันฉันไม่ต้องการที่จะรู้อะไรเกี่ยวกับการดำเนินงานของสิ่งที่ฉันต้องการคือความรู้ที่ว่าอินเตอร์เฟสนี้ต้องการพารามิเตอร์การกำหนดค่าเริ่มต้นที่แน่นอน มีวิธีการอย่างใดคำอธิบายประกอบ (คุณสมบัติ?) อินเตอร์เฟซที่มีข้อมูลนี้และส่งผ่านไปยังกรอบเมื่อวัตถุถูกสร้างขึ้น? แก้ไข: อธิบายอินเตอร์เฟสอีกเล็กน้อย

8
Enterprise Library Unity เทียบกับคอนเทนเนอร์ IoC อื่น ๆ [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบพร้อมข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ข้อดีข้อเสียของการใช้ Enterprise Library Unity เทียบกับคอนเทนเนอร์ IoC อื่น ๆ (Windsor, Spring.Net, Autofac .. ) คืออะไร?

9
ตรวจสอบให้แน่ใจว่าคอนโทรลเลอร์มีข้อผิดพลาดตัวสร้างสาธารณะแบบไม่มีพารามิเตอร์
ฉันได้ทำตามบทช่วยสอนนี้ซึ่งใช้งานได้ดีจนกระทั่งฉันแก้ไขDbContextให้มีตัวสร้างเพิ่มเติม ตอนนี้ฉันมีปัญหากับการแก้ปัญหาและไม่แน่ใจว่าจะต้องทำอย่างไรเพื่อแก้ไขปัญหานี้ มีวิธีง่ายๆในการบังคับให้คว้าตัวสร้างแบบไม่มีพารามิเตอร์หรือฉันเข้าใกล้สิ่งนี้ไม่ถูกต้อง? DbContext ด้วยตัวสร้างสองตัว: public class DashboardDbContext : DbContext { public DashboardDbContext() : base("DefaultConnection") { } public DashboardDbContext(DbConnection dbConnection, bool owns) : base(dbConnection, owns) { } } SiteController ตัวสร้าง: private readonly IDashboardRepository _repo; public SiteController(IDashboardRepository repo) { _repo = repo; } ที่เก็บ: DashboardDbContext _context; public DashboardRepository(DashboardDbContext context) { _context …

5
Ninject vs Unity สำหรับ DI [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบได้ด้วยข้อเท็จจริงและการอ้างอิงโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ปรับปรุงคำถามนี้ เราใช้ ASP.net MVC Ninject หรือ Unity ของเฟรมเวิร์ก DI ตัวใดที่ดีที่สุดและเพราะเหตุใด

7
ฉันสามารถส่งพารามิเตอร์ตัวสร้างไปยังเมธอด Unity's Resolve () ได้หรือไม่
ฉันใช้ Unity ของ Microsoft สำหรับการฉีดพึ่งพาและฉันต้องการทำสิ่งนี้: IDataContext context = _unityContainer.Resolve<IDataContext>(); var repositoryA = _unityContainer.Resolve<IRepositoryA>(context); //Same instance of context var repositoryB = _unityContainer.Resolve<IRepositoryB>(context); //Same instance of context IDataContext context2 = _unityContainer.Resolve<IDataContext>(); //New instance var repositoryA2 = _unityContainer.Resolve<IRepositoryA>(context2); RepositoryAและRepositoryBทั้งสองมีตัวสร้างที่รับIDataContextพารามิเตอร์และฉันต้องการให้ Unity เริ่มต้นที่เก็บด้วยบริบทที่ฉันส่งผ่าน โปรดทราบIDataContextว่าไม่ได้ลงทะเบียนกับ Unity (ฉันไม่ต้องการ 3 อินสแตนซ์IDataContext)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.