0
我想創建一個通用的方式使用模擬對象或代理對象時調用GetGreeting()。我如何構造代碼,使它更通用,即不僅僅是GreetingService?我想以某種方式傳入WCF服務類型嗎?在c#中的代理/模擬對象的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方法,即GreetingService。我想創建一個類,它在實例化時會調用模擬類或代理類。也許通過使用委託或匿名類型? – 2011-02-24 10:53:01
沒錯,但是使用ChannelFactory你可以在運行時進行wcf實現,所以你可以將你的GreetingServiceManager變成ServiceManager ,然後使用帶ChannelFactory的T來連接到wcf,並且嘲笑模擬比特的選擇框架 –
aL3891
2011-02-28 12:26:03