Given:Ninject và trang trí
public interface IBatchProcess
{
void Run();
}
và nhiều thi hành:
public class BatchProcessOne : IBatchProcess { ... }
public class BatchProcessTwo : IBatchProcess { ... }
public class BatchProcessThree : IBatchProcess { ... }
và trang trí tracing:
public class BatchProcessTraceDecorator : IBatchProcess
{
private readonly IBatchProcess _inner;
public BatchProcessTraceDecorator(IBatchProcess inner)
{
_inner = inner;
}
public void Run()
{
Trace.TraceInformation("Starting batch process...");
_inner.Run();
Trace.TraceInformation("Batch process complete.");
}
}
Làm thế nào tôi có thể ràng buộc trang trí và tất cả các hiện thực như vậy khi tôi gọi kernel.GetAll tôi nhận được 3 trường hợp của trang trí theo dõi, mỗi với một quá trình lô bên trong khác nhau?
Tôi biết về Khử từ Ninject và không muốn sử dụng các giải pháp dựa trên proxy vì lý do khác nhau này. Tại thời điểm này có vẻ như tôi cần phải chơi xung quanh với chiến lược kích hoạt cho các cá thể IBatchProcess như vậy mà chúng được giải quyết và sau đó tôi có thể trang trí và trả lại chúng nhưng tôi hy vọng tôi đã bỏ sót một thứ gì đó trong api ràng buộc.