Tôi có một dịch vụ WCF mà thực hiện hai hợp đồng dịch vụ ...Làm thế nào để đăng ký hai hợp đồng dịch vụ WCF với autofac
public class MyService : IService1, IService2
và tôi tự lưu trữ các dịch vụ ...
host = new ServiceHost(typeof(MyService));
Mọi thứ đều hoạt động tốt khi dịch vụ chỉ thực hiện một hợp đồng dịch vụ, nhưng khi tôi cố gắng thiết lập autofac để đăng ký cả hai như sau:
host.AddDependencyInjectionBehavior<IService1>(_container);
host.AddDependencyInjectionBehavior<IService2>(_container);
... nó ném một ngoại lệ vào thứ hai, báo cáo:
Không thể thêm giá trị vào bộ sưu tập vì bộ sưu tập đã chứa một mục cùng loại: 'Autofac.Integration.Wcf. AutofacDependencyInjectionServiceBehavior '. Bộ sưu tập này chỉ hỗ trợ một phiên bản của từng loại.
Thoạt nhìn, tôi nghĩ điều này đã được nói hai hợp đồng của tôi đã bằng cách nào đó được coi là cùng loại nhưng trên bài đọc thứ hai tôi tin rằng nó được nói rằng AutofacDependencyInjectionServiceBehavior là loại trong câu hỏi, ví dụ: Tôi không thể sử dụng nó hai lần!
Tuy nhiên, tôi thấy rằng this post một cách rõ ràng cho thấy sử dụng nó nhiều lần trong một hình thức hơi khác nhau:
foreach (var endpoint in host.Description.Endpoints)
{
var contract = endpoint.Contract;
Type t = contract.ContractType;
host.AddDependencyInjectionBehavior(t, container);
}
Thật không may, điều đó đã được thông báo lỗi rất giống nhau.
Có thể đăng ký nhiều hợp đồng dịch vụ trên một dịch vụ không và nếu có thì làm cách nào?
Cảm ơn bạn - Tôi nên nghĩ như vậy! Tôi vui vì bạn đã chứng minh tôi sai :-) –