我有一个用于保存 Web 服务访问的连接配置信息的接口:
public interface IServiceConnectionConfiguration
{
string Username { get; }
string Password { get; }
string ChannelEndpointUrl { get; }
string MediaEndpointUrl { get; }
string PlayerlEndpointUrl { get; }
string PlaylistEndpointUrl { get; }
}
我有一个工厂类,它返回特定于所请求服务类型的服务实例。
public static class ServiceClientFactory
{
public static void Configure(IServiceConnectionConfiguration config)
{
_config = config;
}
public static T GetService<T>() where T : class, IServiceClient
{
}
}
该工厂被称为
Channel channelService = factory.GetService<Channel>();
我想弄清楚的是工厂代码根据初始化期间传递的配置对象解析传入类型本身的端点 url 的一种优雅方式。例如。如果传递的类型参数是channel,则在构造ChannelService时应该取ChannelEndpointUrl。
我考虑过在配置类上使用属性来用它们对应的服务类型来装饰端点 url,但这似乎是一个糟糕的设计。
有任何想法吗。