طلبات التسجيل / الردود في خدمة بقية WCF
سؤال
أبحث عن طريقة لتسجيل كل الطلبات والردود في خدمة راحة WCF. تأتي مجموعة WCF Starter Kit مع فئة Lequeterceptor التي يمكن استخدامها لاعتراض الطلبات، ولكن لا يبدو أن هناك ما يعادل الاستجابات. من الناحية المثالية، أود أن أكون قادرا على اعتراض استجابة قبل إرسالها مباشرة عبر الأسلاك، على سبيل المثال عند إرجاع طريقة الخدمة الأساسية. أي اقتراحات؟
المحلول
لاحظ أنه إذا كنت ترغب في اعتراض الرسالة الخام، وليس المعلمات، يمكنك حقن تنفيذك idispatchmessageInspector. بدلا من نقطة تمديد iParameterInspector الذي يوحي داني.
نصائح أخرى
يوجد تقفيز في WCF: يمكنك إنشاء أدوات الأدوات المستفادة من السمة، IOPERATBEHAVIOR.
داخلك تنفذ:
public void ApplyDispatchBehavior(
OperationDescription operationDescription,
DispatchOperation dispatchOperation
)
{
dispatchOperation.ParameterInspectors.Add(
new ServerPI()
);
}
وفئة ServerPI () هي ما يفعل السحر: يمكنك القيام بكل ما تحتاجه في Beforecall وأساليب ما بعد الظهر:
class ServerPI : IParameterInspector
{
public void AfterCall(string operationName, object[] outputs, object returnValue, object correlationState)
{
Guid result = (Guid)correlationState;
// ...
}
public object BeforeCall(string operationName, object[] inputs)
{
string parameter1 = inputs[0] as string;
return Guid.NewGuid();
}
}
لا تنتمي إلى StackOverflow