2009-07-30 33 views
15

Tôi có nhiều loại đăng ký với Autofac và một số phụ thuộc khá sâu. Có cách nào được xây dựng để kiểm tra xem tôi có thể giải quyết tất cả các loại đã đăng ký không? Tôi muốn thất bại nhanh chóng khi khởi động ứng dụng, và không phải vài phút sau đó là một phần.Tự động kiểm tra tất cả các loại đã đăng ký có thể được giải quyết

Đây là những gì tôi hiện đang làm và có vẻ như hiệu quả, nhưng tôi vẫn thắc mắc không có cách nào tốt hơn.

public void VerifyAllRegistrations() 
    { 
     foreach (IComponentRegistration registration in _container.ComponentRegistrations) 
     { 
      bool isNewInstance; 
      registration.ResolveInstance(_container, new Parameter[0], new Disposer(), out isNewInstance); 
     }    
    } 

    private class Disposer : IDisposer 
    { 
     public void Dispose() 
     { 
      // no-op 
     } 

     public void AddInstanceForDisposal(IDisposable instance) 
     { 
      instance.Dispose(); 
     } 
    } 

Trả lời

5

Autofac không cung cấp bất cứ điều gì về việc đó - vì Autofac tạo ra các thành phần để đáp ứng với ResolveInstance, bạn sẽ phải đối mặt với constructor tác dụng phụ, vv

Tích hợp thử nghiệm là cách tốt nhất Để giải quyết vấn đề này.

+0

Bạn có thể thử https://github.com/TestStack/TestStack.ConventionTests/releases/tag/2.1.0 –

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