Wie kann ich IOperationBehavior programmatisch hinzufügen, wenn ich auf iis läuft? nicht auf benutzerdefinierten wcf-Host.Wo ist der richtige Ort, um IOperationBehavior programmgesteuert hinzuzufügen
dank
Ali TAKAVCI
Wie kann ich IOperationBehavior programmatisch hinzufügen, wenn ich auf iis läuft? nicht auf benutzerdefinierten wcf-Host.Wo ist der richtige Ort, um IOperationBehavior programmgesteuert hinzuzufügen
dank
Ali TAKAVCI
Sie benötigen einen custom service host zu bauen, dann stellen Sie Ihre SVC-Datei, es zu benutzen. Auf dem benutzerdefinierten Service-Host können Sie vor dem Start alles tun, was Sie möchten, einschließlich Verhaltensweisen. Da Sie Betriebsverhalten verwenden möchten, sollten Sie dies in der OnOpening() -Methode tun - da die Service Factory das Betriebsverhalten zurücksetzt, nachdem das Endpunktverhalten konfiguriert wurde. Sie können die Endpunkte und die Operationen in OnOpening durchlaufen.
Sie es als Attribut anhängen könnte:
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
}
und befestigen Sie das Attribut auf eine Operation
[ServiceContract]
public interface ICustomServiceContract
{
[CustomInspector]
[OperationContract]
void MyOperation();
}
Titel sagt: ‚programmatisch‘, ist es offensichtlich, dass das Wort verschiedene Dinge für Sie bedeutet und Ich –
Dies ist bei weitem die bessere Antwort. Vielen Dank. – ROFLwTIME