问题列表 - 第12712页

我应该在自己的非LINQ代码中使用DuplicateKeyException吗?

我正在为一些关键业务运营编写审计服务.该服务正在使用IoC模式实现:

public interface IAuditWriter
{
    void WriteAction(int key, string value);
}
Run Code Online (Sandbox Code Playgroud)

因此,我需要它来提出不是特定于实现的异常.

审计过程中的部分信息包括一个唯一的密钥.作为服务的当前要求,它作为审计过程的一部分提供关键唯一性检查.重复密钥违反了流程要求.

目前,该服务将实现为对SQL-Server的写入.虽然不太可能,但密钥可能是重复的,在这种情况下,SqlException会抛出抱怨主键约束违规.我宁愿将此异常包装在更通用的"重复键"异常中,该异常可被捕获,然后允许进程生成新密钥.

通常,我讨厌创建一个新的异常类; 几乎总有一种合适的类型可用于传达相同的信息.我已经抓住了System.Data.Linq.DuplicateKeyException过去,它看起来像是一个很好的候选者,除了它来自LINQ相关的命名空间,我的界面与LINQ无关.

我的直接选择似乎是:

  • System.Data.Linq.DuplicateKeyException无论如何都要扔,希望没有人过多地读入命名空间.
  • 抛出System.InvalidOperationException并交叉我的手指我从来不需要一个可以因其他原因抛出此异常的实现.
  • 抛出我自己的习惯DuplicateKeyException.
  • 在接口中创建一个单独的方法来检查密钥唯一性,并在写入密钥和值之前调用它.

你对此有何看法?

.net inversion-of-control

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

如何使用JMXWS WS Connector(JSR-262)启动VisualVM?

我有一个在JBoss中运行的Java应用程序,我在其中启用了JMX远程监控.这允许我连接jconsole和visualvm等工具来监视内存使用情况,cpu利用率,mbeans等.运行我的应用程序的服务器具有限制性端口访问权限,这就是我使用JSR-262 JMX WS Connector的原因.

JSR-262实现有一个如何为jconsole启用jmx:ws协议的示例.但我想尝试使用visualvm.

我认为我必须做的是,在启动visualvm时:

  1. 在类路径中添加一些额外的JSR-262 jar
  2. 将java.endorsed.dirs设置为非捆绑JAXWS库所在的路径

有人能指出我正确的方向吗?有没有一种机制可以为visualvm提供额外的参数?它会起作用吗?还有更简单的方法吗?

java web-services jmx visualvm

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

OpenFialog for WPF

我刚开始使用WPF.从窗体移动.

那些openDialog,saveDialog去了哪里?还有一堆东西.

c# fileopendialog

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

java.lang.SecurityException:类"XYZ"的签名者信息与同一包中其他类的签名者信息不匹配

我有一个applet,它在浏览器中运行,并从Javascript调用.有两个类:PortalLauncherParamSplitter,它们都在默认包中.JavaScript调用的方法PortalLauncher这反过来又调用一个函数ParamSplitter.小程序在一个签名的jar中.

这大部分时间都有效.但是,一些用户不时会遇到问题.在当天的某个时间(即不在第一次访问时),抛出以下异常:

java.lang.SecurityException: class "ParamSplitter"'s signer information does not
    match signer information of other classes in the same package
    at java.lang.ClassLoader.checkCerts(Unknown Source)
    at java.lang.ClassLoader.preDefineClass(Unknown Source)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$000(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at sun.applet.AppletClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.applet.AppletClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    at PortalLauncher.openFile(PortalLauncher.java:313)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) …
Run Code Online (Sandbox Code Playgroud)

java applet securityexception

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

SQL,如何连接结果?

我目前有一个返回许多字段的SQL查询.我需要一个字段实际上是一个子查询子.

问题详细:

如果我有一个包含两列的表X,ModuleID并说ModuleValue,我如何编写SQL查询来获取结果并将其连接到一个字段:

EG结果返回

 (SELECT ModuleValue FROM Table_X WHERE ModuleID=@ModuleID)
Run Code Online (Sandbox Code Playgroud)

价值1

价值2

价值3

...

我需要返回结果(作为单行,与上面不同):

值1,值2,值3

是否有一个简单的连接方法可以是用户?

编辑:

DB是MS TSQL(2005)

sql sql-server sql-server-2005 concatenation sql-server-group-concat

32
推荐指数
7
解决办法
9万
查看次数

如何使用win32 API使用VC++创建椭圆形窗口

我正在使用VC++通过win32 API创建一个窗口程序.我想创建一个椭圆形窗口,如何实现这一目标.

winapi visual-c++

10
推荐指数
1
解决办法
4483
查看次数

反序列化文件中的数据.性能问题

我从数据库中读取了一个包含超过100万条记录的表.我需要3分钟才能在内存中填充对象.我想优化此过程,并使用二进制BinaryFormatter将此对象序列化为文件.它创建了一个1/2 GB大小的文件.我将此文件反序列化回内存对象后.这花了11分钟!

问题:为什么从数据库读取所有这些数据要比从文件读取所有这些数据要快得多?是否有可能以某种方式优化反序列化过程?

数据库在我测试的同一台机器上.其他进程此时都没有占用CPU时间.CPU有4个内核,有40 GB内存.

编辑:反序列化的代码:

    using (FileStream fs = new FileStream(filename, FileMode.Open))
    {
        var bf = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
        var data = (MyType)bf.Deserialize(fs);
        ...
    }
Run Code Online (Sandbox Code Playgroud)

.net optimization performance serialization

4
推荐指数
1
解决办法
3685
查看次数

重定向管理员保存

如何在保存时将用户重定向到其他应用?

我有两个应用程序,说app1app2.如果用户单击"保存",app2则应将其重定向到app1默认页面.

我不想做自定义表单.

django django-admin

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

在自定义中间件中未捕获的异常后,类重新加载停止

我编写了自己的中间件来为我们的应用程序提供API端点.中间件加载提供API方法的类,并将请求路由到适当的类/方法.这些类是通过动态加载的String#constantize.

在开发模式下运行时,会自动重新加载类.但是,如果存在未捕获的异常 - 随后由故障安全中间件处理 - 自动重新加载将停止工作.constantize仍在被召唤,但它似乎回归旧班.

看起来还有其他东西可以卸载类,而一个未捕获的异常会破坏它.这可能是什么?

运行Ruby 1.8.7,Rails 2.3.3和Thin 1.2.2.

middleware ruby-on-rails

10
推荐指数
1
解决办法
409
查看次数

从一个查询中的两个表中删除行

我有两个表:orders和orders_items.两者共享字段orderID.

我想删除orderID = 500的两个表中的所有行,但我只需要在一个查询中执行此操作.这可能吗?

mysql cascade

7
推荐指数
2
解决办法
8339
查看次数