2011-02-14 2 views
1

J'ai lu la réponse décevante here concernant l'activation de la consignation des messages WCF à partir du code, mais j'ai pensé que peut-être d'autres suggestions pourraient être faites pour le faire. Je travaille sous les contraintes du développement d'une bibliothèque .NET 3.5 qui est chargée (via COM) dans un framework win32 plus grand. En tant que tel, je n'ai aucun contrôle sur le contenu d'un fichier app.config.Activer la journalisation des messages WCF par programme (à partir du fichier .dll)

Existe-t-il un moyen (Réflexion pour accéder aux classes internes? Quelque autre méchanceté?) D'accomplir cela?

+0

Avez-vous un problème avec la consignation basée sur la configuration? –

Répondre

1

Je viens réussi à résoudre ce problème en ajoutant un IClientMessageInterceptor, utilisé this post comme référence.

0

Le service WCF doit avoir une interface, correcte? Utilisez un contenant du CIO (windsor, par exemple) pour instancier le service WCF, et ajoutez l'enregistrement autour en utilisant des intercepteurs:
http://davybrion.com/blog/2008/05/adding-behavior-without-modifying-existing-code-with-windsor/

Je ne sais pas si cela est le niveau de vous connecter demandez, mais c'est un option.

L'autre option consiste à mettre en œuvre Log4Net (ou un autre fournisseur d'enregistrement) et configurer l'enregistreur dans le code:
log4net pure code configuration with filter in c#

+0

Merci pour la suggestion. J'utilise déjà Ninject pour le projet, donc utiliser un Interceptor fonctionnerait bien. J'ai juste réussi à résoudre ceci d'une manière "assez bonne" en implémentant mon propre IClientMessageInterceptor basé sur ce post: http://msdn.microsoft.com/en-us/magazine/cc163302.aspx#S5 – Pete

Questions connexes