Tôi có một số hành vi dịch vụ cho các dịch vụ WCF mà tôi chỉ muốn đăng ký; không có cấu hình. I figured tôi có thể bỏ qua việc tạo ra một BehaviorExtensionElement hậu duệ mỗi thời gian bằng cách sử dụng Generics:Có phải một Hành vi chung có thể xảy ra không?
public class SimpleBehaviorExtensionElement<TBehavior> : BehaviorExtensionElement
where TBehavior: new()
{
protected override object CreateBehavior()
{
return new TBehavior();
}
public override Type BehaviorType
{
get { return typeof(TBehavior); }
}
}
Và trong Web.config:
<behaviorExtensions>
<add name="myBehavior2"
type="WcfService1.SimpleBehaviorExtensionElement`1[[WcfService1.MyBehavior,
WcfService1]], WcfService1"/>
</behaviorExtensions>
WcfService1.MyBehavior tồn tại, thực hiện IServiceBehavior, và đã được thử nghiệm.
Nhưng khi tôi tham khảo < myBehavior2/> trong phần hành vi của các tập tin cấu hình, tôi nhận được:
xảy ra lỗi khi tạo phần handler cấu hình cho System.ServiceModel/hành vi: yếu tố mở rộng 'myBehavior2' không thể thêm vào phần tử này. Xác minh rằng tiện ích được đăng ký trong bộ sưu tập mở rộng tại system.serviceModel/extensions/behaviorExtensions. Tên thông số: phần tử
Mọi thứ đều hoạt động nếu tôi tạo hành vi không chung chung.Giải trí hậu cần, mà tôi có thể làm. Nhưng bây giờ nó lỗi tôi. ;)
Đó không phải là trường hợp. Tôi có các phần tử mở rộng hành vi làm việc chỉ định loại không có phiên bản. – TrueWill
@TrueWill: Tôi nghi ngờ rằng bất kỳ yếu tố làm việc nào thực sự là một yếu tố chung. –
bạn đã thử điều này và thành công đã nhận nó để làm việc với một phần mở rộng chung? – TrueWill