Hành xử dịch vụ ( Service Behivior)
Các hành xử dịch vụ là một khía cạnh thực hiện phụ thuộc vào các giải pháp tầng dịch vụ. Các thuộc tính ServiceBehavior chỉ áp dụng tại các cấp class. Mặc dù các thuộc tính ServiceContract được áp dụng tại giao diện của cả hai hợp đồng và các cấp class.
Một số thuộc tính như:
Currency: Kiểm soát hành xử xử lí một đối tượng và hỗ trợ cuộc gọi. Chỉ có hiệu lực nếu thuộc tính Instancing không phải là PerCall.
Instancing: Kiểm soát và điều khiển việc tạo vòng đời của đối tượng. Mặc định là PerCall, một đối tượng mới trên mỗi cuộc gọi phương thức. Nói chung, trong dịch vụ định hướng session, PerSession hoặc Shareable có thể cung cấp hiệu suất tốt hơn, mặc dù ở mức chi phí quản lý đồng thời.
Throttling: Quản lý thông qua cấu hình, khi đồng thời cho phép cho các nhiều cuộc gọi, hạn chế số lượng cuộc gọi đồng thời, kết nối, tổng số trường hợp và hoạt động chờ.
Transaction: Kiểm soát các khía cạnh giao dịch.
Hành xử hợp đồng ( Contract Behivior)
Thực thi trên giao diện System.ServiceModel.Description.IContractBehavior. Hành xử này có thể tùy biến khi chạy, liên quan đến DispatchRuntime / ClientRuntime và có thể được thêm vào thuộc tính trong mã. Chúng ta có thể thêm một hành xử hợp đồng lập trình. foreach (ServiceEndpoint se in host.Description.Endpoints) { se.Contract.Behaviors.Add(new CustomBehavior); }
Hành xử thao tác ( Operation Behivior)
Thực thi giao diện System.ServiceModel.Description.IOperationBehavior. Có thể tùy chỉnh thực thi bằng cách tùy chỉnh các đối tượng Operation/ ClientOperation.
Hành xử này có thể được thêm bằng cách thêm thuộc tính hoặc lập trình. foreach (ServiceEndpoint se in host.Description.Endpoints) { foreach (OperationDescription od in se.Contract.Operations) { od.Behaviors.Add(new CustomBehavior); } }
Hành xử điểm cuối( EndpointBehavior)
Thực thi giao diện System.ServiceModel.Description.IEndpointBehavior. Hành xử này có thể tùy biến dựa trên đối tượng EndpointDispatcher. Có thể được thêm vào bằng cách cấu hình hoặc lập trình.
foreach (ServiceEndpoint se in
host.Description.Endpoints) se.Behaviors.Add(new CustomBehavior());