使用具有相同绑定到不同类型的多个模块

时间:2015-12-29 09:16:06

标签: guice guice-3

我有两个不同的模块,它们对同一个接口和多个子模块有不同的绑定。以下示例

public void configure() {
Injector injPublisher = Guice.createInjector(new PublisherModule());
Publisher pub = injPublisher.createInjector(Publisher.class)

bind(Publisher.class).toInstance(pub)
install(new SubscriberModule());
}

现在我遇到了一个需要同时使用两个模块的用例。任何解决方案?

PS:我现在不能使用任何命名绑定。我一直在寻找像(它没有工作)的解决方案

 private void BindProducts()
 {
 SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["kernelCS"].ConnectionString);
 con.Open();
 SqlDataAdapter   Gridad = new SqlDataAdapter("select * from tbl_price", con);
 DataTable  Gridds = new DataTable();                 
 Gridds.Clear();
 Gridad.Fill(Gridds);
 gridviewProducts.DataSource = Gridds;
 con.Close();
 }

有什么工作吗?

1 个答案:

答案 0 :(得分:0)

根据@Jeff Bowman的建议,我可以访问模块,我可以编辑它以使模块保密。

PS:实际上上面的配置方法代码正在运行。该 懒惰创建的实例(例如,发布者中的ITransport引用是通过@assisted注入​​工厂创建的,它也是基于某些客户端操作而懒惰地实例化)使用Publisher Module的绑定。而早期创建的实例来自订阅者模块。不确定如何理解这种行为