Tôi tò mò về sự khác biệt giữa hai phương pháp này. Tôi đang triển khai mẫu trang trí bằng các hình mở và tôi có sử dụng AddAllTypesOf
hoặc ConnectImplementationsToTypesClosing
không, tôi có cùng chức năng.AddAllTypesOf vs ConnectImplementationsToTypesClosing
public class CommandRegistry : Registry
{
public CommandRegistry()
{
For<CommandProcessor>().Use<DefaultCommandProcessor>().Transient();
Scan(scanner =>
{
scanner.AssemblyContainingType<SaveCoolCommandHandler>();
//scanner.AddAllTypesOf(typeof(CommandHandler<>));
//scanner.AddAllTypesOf(typeof(IValidator<>));
//scanner.AddAllTypesOf(typeof(LogMehh<>));
scanner.ConnectImplementationsToTypesClosing(typeof(CommandHandler<>));
scanner.ConnectImplementationsToTypesClosing(typeof(IValidator<>));
scanner.ConnectImplementationsToTypesClosing(typeof(LogMehh<>));
});
var handlerType = For(typeof(CommandHandler<>));
handlerType.DecorateAllWith(typeof(CommandValidator<>)); //Second
handlerType.DecorateAllWith(typeof(CommandLogger<>)); //First
// ObjectFactory.WhatDoIHave();
}
}
Các cuộc gọi đến ObjectFactory.WhatDoIHave()
cũng mang lại cho tôi những kết quả tương tự không có vấn đề phương pháp tôi chọn.
Tôi đã xem mã nguồn và các phương pháp này chắc chắn đang làm những việc khác nhau, tôi chưa thể xác định chính xác sự khác biệt là gì. Có bất kỳ hướng dẫn hoặc kịch bản nào khi người ta ưa thích hơn người kia hay không?
Câu trả lời hay, thú vị, tôi sẽ thử các kịch bản đó với các phiên bản mới hơn và xem điều gì sẽ xảy ra. – CSharper