۱- اضافه کردن service reference با کمک ویژوال استودیو: در این روش خود شما فقط url سرویس مورد نظر را به ویژوال استودیو میدهید. ویژوال استودیو هم کلاسها و interfaceهای لازم را برای تولید proxy مورد نظر تولید میکند. بدی این روش این است که باید مقدار زیادی کد را نگه دارید بدون آن که خودتان آن را تولید کرده باشید. علاوه بر این کد تولیدی وابستگی زیادی به سرویس دارد، با کمترین تغییر در سرویس WCF شما هم باید service reference را update کرده و مجدداً برنامه را کامپایل کنید. ایراد آخر هم این است که موقع برنامهنویسی کلاینت باید سرور هم در حال اجرا و در دسترس باشد در غیر این صورت نمیتوانید عملیات add reference را انجام دهید.
۲-اضافه کردن service reference با کمک ویژوال استودیو و instance گیری با کمک ابزارهای DI و IoC مثل Castle Windsor: این روش هم مشابه روش قبلی است با این تفاوت که روال instance گیری را به Castle Windsor میسپارید و خودتان درگیر نمیشوید.
۳- استفاده از WCF Facility برای ایجاد پراکسیهای WCF بدون اجبار به Add Reference کردن یا تهیه کلاسهای کلاینتی. در این روش به طور runtime و با کمترین دردسری میتوان برای هر نوع سرویس WCFی پراکسی تعریف کرده و مورد استفاده قرار داد. WCF Facility یکی از امکانات جانبی Castle Windsor است. از WCF Facility حتی برای سرور WCF هم میتوان استفاده کرد.
منبع:
http://blog.hatchan.nl/2010/07/wcf-facility-for-castle-windsor-client.html