问题列表 - 第9814页

Guice的依赖注入:任何教程都没有涉及的东西

我刚刚使用Google Guice for Dependency Injection,并开始将其集成到我现有的应用程序中.到现在为止还挺好.我有许多类,除了它们的依赖项,还需要Strings,DataSources等等.我知道有NamedBindings,但我真的不想为每个简单的字符串创建一个注释,我必须传递给每个类的构造函数.然后,有一个名为AssistedInject的东西,为我创建Factory实现.哇,但我还是要定义工厂的界面.这对于具有依赖关系的类是否可以,但是这个示例类呢:

public class FooBarClass {
    public FooBarClass(String name, String anotherOne) {
        // Some stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

在某些情况下,我怀疑如何使用Guice,或者更一般地说,DI是正确的方式."我经常听到:XYZ框架是新的." 但这暗示我必须使用DI框架创建每个实例.

只需要一个实例

如果我只需要这个类的一个实例怎么办?除了两个字符串之外,这个类绝对没有依赖性.想想一个Shutdown Hook,它只会被实例化一次并作为我的Shutdown Hook传递给JVM.我应该用Guice创建这个实例吗?这看起来非常愚蠢,因为没有什么可注入,但我必须编写工厂接口来传递Guide两个参数,并且必须为我的FooBarClass创建一个接口来使用DI.

需要多个实例

同样的事情适用于我需要这个类的多个实例的情况.没有依赖关系,但我必须创建一堆样板代码才能从中获取任何东西.这对我来说似乎不对.

那么,我应该如何使用DI和/或Guice?

非常感谢!

java dependency-injection guice

8
推荐指数
1
解决办法
2098
查看次数

c ++异常,what()可以为NULL吗?

捕获的std :: exception是否可以使what()为NULL?

检查e.what()是否低于开销?

//...
}
catch (const std::exception& e)
{
  std::string error;
  if(e.what())
    error = e.what();
}
Run Code Online (Sandbox Code Playgroud)

c++ exception

8
推荐指数
2
解决办法
1599
查看次数

MicrosoftAjax.js没有缩小的原因吗?

我使用YuiCompressor压缩我自己的JS,但是有没有理由说明MicrosoftAjax.js没有缩小?或者是否有一些设置来说运行它的压缩版本(如果有压缩版本).或者我是否需要对其进行反编译并自行缩小脚本资源?

javascript asp.net-ajax minify

18
推荐指数
2
解决办法
3866
查看次数

使用row_number从查询中获取@@ rowcount的有效方法

我使用SQL Server 2005中的row_number over()功能进行了一次昂贵的查询.在查询被分页时,我只返回这些记录的子列表.但是,我还想返回记录总数,而不仅仅是分页子集.有效地运行查询两次以获得计数是不可能的.

选择计数(*)也是不可能的,因为当我尝试这个时表现非常糟糕.

我真正喜欢的是@@ ROW_NUMBERROWCOUNT :-)

sql sql-server sql-server-2005

30
推荐指数
2
解决办法
8139
查看次数

表不可知的外键?

首先,我确实读过这个StackOverflow问题,所以不需要指向我.

我现在正在研究类似的问题.具体来说,我有一个带有审计表的数据库,用于存储有关数据库中其他表的审计信息.该表的基本形式是:

ID,EntityID,EntityTypeID,ActionTypeID,DateTime

现在,正如您可以猜到的,EntityID的通用特性意味着进出该表的外键关系很难管理,特别是通过ORM系统进入混合.

当然,grunt-work解决方案是手动执行所需的查询并使用ORM工作的东西,我很好.

但是,这个问题在我的脑海中确实提出了一个问题,即是否存在允许形式的外键关系的任何RDBMS:表:要定义的ID.

换句话说,在这样的RDBMS中,EntityTypeID列可能包含诸如的值

'TableA:1'和'TableB:somekey'

所以...

有没有RDBMS这样做?

orm rdbms foreign-keys

3
推荐指数
1
解决办法
432
查看次数

Marshall手动一个线程

在WinForms中,你有Control.BeginInvoke(),这意味着你可以编组从后台线程到创建控件句柄的主UI线程的调用.

这很好,但是如何(在C#中)你会在两个"标准"线程之间做到这一点?

我编写了一个服务总线,它有一个处理器线程来消费消息.我想要一个计时器来触发,这会导致处理器线程做某事,而不是在计时器的线程中运行的代码.

当然我可以使用线程同步(Monitor/ using() {...}),但想知道它是如何正常完成的.

c# multithreading

6
推荐指数
1
解决办法
4497
查看次数

Excel range.Rows属性真的有用吗?

好的,我正在为一个遗留的Excel-VBA应用程序完成一个附加项目,我再一次遇到了神秘范围的难题.Rows(?)和worksheet.Rows属性.

有谁知道这些属性真正做了什么以及它们应该为我提供什么?(注意:所有这些可能也适用于相应的*.Columns属性).

我真的希望能够使用它是返回一系列行,如下所示:

   SET rng = wks.Rows(iStartRow, iEndRow)
Run Code Online (Sandbox Code Playgroud)

但是我从来没有能够做到这一点,即使Intellisense为它显示了两个参数.相反,我必须使用其他两种(非常kludgy)技术中的一种.

帮助是非常无益的(对于Office VBA通​​常如此),并且对于"Rows"的Google搜索并不是非常有用,无论我添加了多少其他术语.

我能够使用它的唯一的事情是1)返回单行作为范围(rng.Rows(i))和2)返回范围(rng.Rows.Count)中的行的计数.是吗?真的没有别的东西吗?

澄清:我知道它会返回一个范围,并且还有其他方法可以获得一系列行.我要求的具体是我们从.Cells()和.Range()得到的.Rows()得到了什么?我知道的两件事是1)返回单行范围的简单方法和2)计算范围内行数的方法.

还有别的事吗?

excel vba ole-automation excel-vba

59
推荐指数
4
解决办法
15万
查看次数

意外的ArrayStoreException

为什么以下代码抛出ArrayStoreException

double[] a = {2.0,3.4,3.6,2.7,5.6};
int[] b = {2,3,4,5};
System.arraycopy(b,0,a,1,4);
Run Code Online (Sandbox Code Playgroud)

java

2
推荐指数
1
解决办法
3216
查看次数

在Python中,如何从一些源数据轻松生成图像文件?

我有一些我想要想象的数据.源数据的每个字节大致对应于图像的像素值.

使用Python生成图像文件(位图?)的最简单方法是什么?

python data-visualization image

19
推荐指数
2
解决办法
5万
查看次数

实用程序类与子类.net控件

我想重用我编写的一些代码来为datagridview添加一些功能.我希望公开默认的datagridview属性和事件,因此我不想创建新的自定义组件.所以我尝试编写一个子类,工作正常.但我也想到我可以编写一个独立的实用程序类,它在构造函数中获取datagridview并以相同的方式设置它.例如

public class
MyGrid
{
    private DataGridView m_dg;

    public MyGrid(DataGridView dg)
    {
        m_dg = dg;
        m_dg.RowHeadersVisible = false;
        m_dg.SortCompare += new DataGridViewSortCompareEventHandler(m_dg_SortCompare);
    }

    void m_dg_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
    {
        // do custom sorting here
    }
}
Run Code Online (Sandbox Code Playgroud)

所以在我的应用程序启动的某个地方,我会打电话

MyGrid g1 = new MyGrid(dataGridView1);
MyGrid g2 = new MyGrid(dataGridView2);
Run Code Online (Sandbox Code Playgroud)

等等.这种方法的任何缺点?看起来大部分代码都是一样的,不同之处在于如何实例化扩展网格(将子类控件拖放到表单中,拖动普通数据网格并调用上面的代码)

c# controls datagridview subclassing

5
推荐指数
1
解决办法
745
查看次数