прокси / фиктивный объект в c # для wcf - PullRequest
0 голосов
/ 24 февраля 2011

Я пытаюсь создать общий способ использования фиктивного объекта или прокси-объекта при вызове GetGreeting ().Как я могу структурировать код так, чтобы он был более общим, то есть не только для GreetingService?Я должен как-то передать службу typeof WCF, я думаю?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace proxymockproblem
{
    class Program
    {
        static void Main(string[] args)
        {
            GreetingServiceManager caller = new GreetingServiceManager(false);
            Console.Write(caller.GetCaller().GetGreeting());
            Console.ReadLine();
        }
    }

    public interface IGreetingServiceManager
    {
        string GetGreeting();
    }

    public class proxyGreetingService : IGreetingServiceManager
    {
        public string GetGreeting()
        { return "hi from proxyGreetingService"; }
    }

    public class mockGreetingService : IGreetingServiceManager
    {
        public string GetGreeting()
        { return "hi from mock"; }
    }


    public class GreetingServiceManager
    {
        bool UseMock;
        public GreetingServiceManager(bool usemock)
        {
            UseMock = usemock;
        }

        public IGreetingServiceManager GetCaller()
        {
            if (UseMock)
            {
                return new proxyGreetingService();
            }
            else
            {
                return new mockGreetingService();
            }

        }
    }

}

1 Ответ

1 голос
/ 24 февраля 2011

взгляните на ChannelFactory класс

Если вам нужен прокси-сервер специально для wcf, который должен выполнить трюк

для выполнения тестов, вы можете использовать один изнасмешливые рамки, такие как кроты , nmock или moq

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...