9

Tôi đang tìm một số ví dụ/giải thích cơ bản về Unity. Tôi gặp khó khăn trong việc nắm bắt khái niệm. Tôi có sự hiểu biết cơ bản về mô hình tiêm vì dường như Unity liên quan chặt chẽ đến nó. Tôi đánh giá cao sự giúp đỡ nào.Microsoft Unity là gì?

Trả lời

11

Unity là một trong những several DI Containers for .NET. Nó có thể được sử dụng để soạn đồ thị đối tượng, khi các loại được đề cập theo sau Dependency Inversion Principle.

Cách đơn giản nhất để làm điều đó là sử dụng Constructor tiêm mẫu:

public class Foo : IFoo 
{ 
    private readonly IBar bar; 

    public Foo(IBar bar) 
    { 
     if (bar == null) 
      throw new ArgumentNullException("bar"); 

     this.bar = bar; 
    } 

    // Use this.bar for something interesting in the class... 
} 

Bây giờ bạn có thể cấu hình Unity trong của ứng dụng Composition Root:

container.RegisterType<IFoo, Foo>(); 
container.RegisterType<IBar, Bar>(); 

là các Đăng ký giai đoạn của Register Resolve Release pattern. Trong Resolve giai đoạn các container sẽ Auto-wire đồ thị đối tượng mà không cần cấu hình thêm:

var foo = container.Resolve<IFoo>(); 

này hoạt động tự động vì cấu trúc tĩnh của các lớp tham gia bao gồm tất cả các thông tin container cần phải soạn đối tượng đồ thị.

+10

Để thêm vào câu trả lời của Mark (hy vọng anh ấy không quan tâm), nếu bạn muốn tìm hiểu thêm về Dependency Injection, có một cuốn sách rất hay được gọi là "Dependency Injection in .NET" được viết bởi Mark. http://www.manning.com/seemann/ – Phill

+1

@phill: vui lòng không làm điều đó. Mark ghét nó khi mọi người tham khảo cuốn sách của anh ấy :-) – Steven

+0

:(Xin lỗi, không làm lại. – Phill

Các vấn đề liên quan