iisで実行中にIOperationBehaviorをプログラムで追加するにはどうすればよいですか? カスタムwcfホストにはありません。IOperationBehaviorをプログラムで追加する適切な場所はどこですか
おかげ
アリTAKAVCIは
iisで実行中にIOperationBehaviorをプログラムで追加するにはどうすればよいですか? カスタムwcfホストにはありません。IOperationBehaviorをプログラムで追加する適切な場所はどこですか
おかげ
アリTAKAVCIは
あなたはそれを使用するように.SVCファイルを設定し、custom service hostを構築する必要があります。カスタムサービスホストでは、ビヘイビアの設定など、開始前にサービスに好きなことを実行できます。操作ビヘイビアを使用する必要があるため、OnOpening()メソッドで行う必要があります。サービスファクトリが適用されるときに、エンドポイントビヘイビアが設定された後に操作ビヘイビアがリセットされます。 OnOpeningのエンドポイントと操作を反復することができます。
あなたは属性としてそれを添付できます。
public class CustomInspectorAttribute : Attribute, IOperationBehavior, IParameterInspector
{
#region IOperationBehavior Members
public void AddBindingParameters(OperationDescription operationDescription, BindingParameterCollection bindingParameters)
{
}
public void ApplyClientBehavior(OperationDescription operationDescription, ClientOperation clientOperation)
{
// Attribute could be used on client side
clientOperation.ParameterInspectors.Add(this);
}
public void ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation)
{
// Attribute could be used on server side
dispatchOperation.ParameterInspectors.Add(this);
}
public void Validate(OperationDescription operationDescription)
{
}
#endregion
#region IParameterInspector Members
public void AfterCall(string operationName, object[] outputs, object returnValue, object correlationState)
{
// Do something with returned values from operation
}
public object BeforeCall(string operationName, object[] inputs)
{
// Do something with incoming parameters before invoking actual operation
return null;
}
#endregion
}
と操作に属性を付ける
[ServiceContract]
public interface ICustomServiceContract
{
[CustomInspector]
[OperationContract]
void MyOperation();
}
タイトルは「プログラム的」と言う、言葉があなたのために異なった事を意味していることは明白であると私は –
これははるかに良い答えです。ありがとう。 – ROFLwTIME