值得缓存,ChannelFactory因为它的构造成本很高.添加服务引用(或svcutil.exe直接)生成的代理在某些情况下执行此操作(如果要进行此缓存,通常不能在代码中构建绑定).如果您ChannelFactory手动构建(不使用生成的代理),则由您将其存储在某个位置,而不是在每次需要时将其初始化.
汇集代理可能没有多大意义.对于无状态服务,代理创建应该很快(如果您已缓存工厂).对于有状态服务,您不希望在多个"客户端"之间共享代理.连接层本身也有池.HTTP绑定默认使用称为持久连接的东西.这些连接可以由多个代理重用.Net.tcp和net.pipe绑定在内部使用连接池.这意味着代理的生命周期不必与连接的生命周期相同.