问题列表 - 第11743页

Java的Timer任务是否保证不会同时运行?

new Timer(...).schedule(task)
Run Code Online (Sandbox Code Playgroud)

task保证被由单个线程在任何时候运行?

java concurrency timer

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

如何在C#中编写实体比较器(带有首次尝试的示例代码)

可能重复:
比较两个实体框架实体的最佳方法是什么?

我想知道比较两个相同类型实体的最有效方法。

一个实体是通过xml文件手动创建的(即,新实例和手动设置的属性),而另一个则是从我的对象上下文中删除的。

我想知道每个实例中的属性值是否相同。

我的第一个想法是从每个对象生成属性值的哈希值并比较哈希值,但是可能有另一种方法还是内置方法?

欢迎大家提出意见。

非常感谢,

詹姆士

更新

我想出了这个:

static class ObjectComparator<T>
{
    static bool CompareProperties(T newObject, T oldObject)
    {
        if (newObject.GetType().GetProperties().Length != oldObject.GetType().GetProperties().Length)
        {
            return false;
        }
        else
        {
            var oldProperties = oldObject.GetType().GetProperties();

            foreach (PropertyInfo newProperty in newObject.GetType().GetProperties())
            {
                try
                {
                    PropertyInfo oldProperty = oldProperties.Single<PropertyInfo>(pi => pi.Name == newProperty.Name);

                    if (newProperty.GetValue(newObject, null) != oldProperty.GetValue(oldObject, null))
                    {
                        return false;
                    }
                }
                catch
                {
                    return false;
                }
            }

            return true;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我还没有测试过,它更是一种思想,可以从小组中产生更多的想法。

可能存在问题的一件事是比较本身具有实体值的属性,如果默认比较器根据对象引用进行比较,那么它将永远不会成立。一种可能的解决方法是使相等运算符重载到我的实体上,以便对实体ID进行比较。

.net c# comparison performance entity-framework

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

"清除:两者"的最佳方式

很长一段时间以来,我一直在使用一个名为CSS的类clear,它只有规则clear: both.我以下面的方式使用它(以Django语法显示,但它不重要):

{% for item in collection %}
  <ul class="horiz"><!-- horizontal list -->
    <li>{{ item }}</li>
    <li>{{ item }}</li>
  </ul>
  <div class="clear"></div>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我正在做一堆水平列表,使它看起来就像一张桌子.想象一下CSS规则.horiz li意味着什么float: left.请注意,我<div class="clear"></div>在这个"表"中的每一行之后使用,很多HTML用于这么简单的事情.

这真的是要走的路吗?我有没有想过更简单的东西?

html css clear

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

在商务舱中有消息框错了吗?

是否在业务类中引用System.Windows.Forms并使用MessageBox.Show错误?

目前有一个事件处理装饰器类装饰服务类.当某些事件被解雇时,装饰者想询问用户是否要继续处理某些功能.

这个装饰器类有这些消息框可以吗?

.net business-objects design-principles

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

DataGridView复选框列 - 值和功能

我在C#表单中为DataGridView添加了一个复选框列.该功能需要是动态的 - 您选择一个客户并显示他们可以维修的所有物品,并选择您希望这次服务中的哪一个.

无论如何,代码现在将添加一个chckbox到DGV的开头.我需要知道的是:

1)如何制作它以便默认"检查"整列?2)当我点击DGV下方的按钮时,如何确保仅从"已检查"行获取值?

这是插入列的代码:

DataGridViewCheckBoxColumn doWork = new DataGridViewCheckBoxColumn();
            doWork.HeaderText = "Include Dog";
            doWork.FalseValue = "0";
            doWork.TrueValue = "1";
            dataGridView1.Columns.Insert(0, doWork);
Run Code Online (Sandbox Code Playgroud)

接下来呢?任何帮助将不胜感激!

c# checkbox datagridview winforms

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

在发布模式下写入Debug

我有一个例外,我需要吞下(日志记录期间的异常),但我不希望异常信息完全丢失到时间的迷雾,所以我想我也可以至少将其输出到调试使用

Debug.Write(ex.ToString());
Run Code Online (Sandbox Code Playgroud)

这样,如果有必要支持,至少可以在有问题的机器上使用DebugView.

麻烦是在发布模式下删除Debug类 - 如何在发布模式下输出要调试的内容?

c# debugging exception-handling release

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

是否可以让退出时间退出我的程序?

是否可以让退出时间退出我的程序?

我制作了Windows移动C#程序,我希望在5分钟之后 -

如果用户没有按任何键或点击屏幕,程序将退出.

我怎么能做到的?

谢谢你的补充

c# windows-mobile

0
推荐指数
2
解决办法
415
查看次数

动态字节码检测 - 问题

我有一个问题,我无法解决.假设我们有以下两个类和一个继承关系:

public class A {
}

public class B extends A {
    public void foo() {}
}
Run Code Online (Sandbox Code Playgroud)

我想要检测其他代码,使其看起来如下:

public class A {
    public void print() { }
}

public class B extends A {
     public void foo() { print(); }
}
Run Code Online (Sandbox Code Playgroud)

为了实现这个目标,我将我的实现基于java.lang.instrument包,使用具有我自己的类文件转换器的代理.该机制也称为动态字节码检测.

到目前为止一块蛋糕.现在,我的测试方法执行以下操作:

码:

B b = new B();
b.foo();
Run Code Online (Sandbox Code Playgroud)

由于instrumentation包中的以下限制,这不起作用:在调用时new B(),检测从B类开始,并在加载被操作的类时最终出现编译错误,因为超类A还没有print()方法!问题是我是否以及如何在类B之前触发类A的检测.我的classfiletransformer的transform()方法应该显式地用类A调用!所以我开始阅读并碰到了这个:

java.lang.instrument.ClassFileTransformer.transform()的javadoc中说:

将为每个新的类定义和每个类重新定义调用转换器.使用ClassLoader.defineClass进行新类定义的请求.类重新定义的请求是使用Instrumentation.redefineClasses或其本机等效项进行的.

转换方法带有一个类加载器实例,所以我想,为什么不在B的检测开始时用类A 调用loadClass方法(loadClass调用defineClass).我预计仪器方法将被调用,但遗憾的是情况并非如此.而是在A没有仪器的情况下加载了类.(代理不会拦截加载过程,尽管它应该)

任何想法,如何解决这个问题?您是否看到为什么操作某些字节码的代理无法手动加载另一个类,然后希望通过该/任何代理发送的类?

请注意,以下代码正常工作,因为在操作B之前加载了A并进行了检测.

A a =  new A();
B b = …
Run Code Online (Sandbox Code Playgroud)

java instrumentation bytecode agent

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

在 Java 中,如何在日志文件中包含动态版本信息?

我可以使用自定义日志记录框架从 Java 应用程序记录字符串,如下所示:

logger.info("Version 1.2 of the application is currently running");
Run Code Online (Sandbox Code Playgroud)

因此,当用户向我发送日志文件时,我可以轻松查看他们正在运行的应用程序的版本。

上面代码的问题在于版本是硬编码在字符串文字中的,需要有人记住为每个版本更新它。在发布时忘记更新此字符串是相当不可避免的。

我想要做的是根据应用程序 JAR 的清单文件中的版本号之一自动更新此字符串文字:

Specification-Version: 1.2
Implementation-Version: 1.2.0.0
Run Code Online (Sandbox Code Playgroud)

我不介意这种情况发生在编译时还是运行时,只要版本号进入日志文件即可。

java logging manifest

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

SPWeb.Site,你应该调用Dispose()吗?

更新日期06/08/2009 15:52:简短回答NO.原始问题:

我找不到任何关于SPWeb.Site关于处理的指导.我已经阅读了一些关于处理SharePoint对象的最流行的最佳实践文档:

不幸的是,这些指南都没有提到SPWeb.Site.为了给出一些上下文,我正在编写一个公共扩展API,它接受SPWeb作为方法的参数,即:

public static void GetWebPartFromCatalog(this SPWeb web, string webPartName)
{
     ......

     SPSite site = web.Site;
     ......

     **OR** ??

     using (SPSite site = web.Site)
     {
         ....
     }
}
Run Code Online (Sandbox Code Playgroud)

我在SPWeb的refelector中看起来像是Close()方法,由SPWeb.Dispose()调用,并且它没有任何内容表明实际的SPSite成员字段被处理掉了.

更新:2009年8月6日13:47

Alex的建议下

"将它放在一个运行100次的循环中,并使用WSS v3和MOSS 2007中的SPSite/SPWeb泄漏故障排除中描述的SPRequestStackTrace注册表项来检查您的测试代码是否是问题的根源."

我在webpart中运行了以下代码:

 for (int i = 0; i < 100; i++)
 {
     using (SPWeb web = SPContext.Current.Site.OpenWeb(""))
     {
            SPSite site = web.Site;
            Debug.WriteLine(site.Url);
     }
 }
Run Code Online (Sandbox Code Playgroud)

SharePoint日志中没有任何内容.

虽然我会毫不犹豫地从这个天真的实验中得出任何真正的结论,但它表明没有必要处置SPWeb.Site.从更加了解这个主题的人那里得到一个具体的答案真的很好.

更新:06/08/2009 14:52 Greg的评论提示我制定了m_Site的赋值,看起来它最终总是通过内部构造函数传递给SPWeb.例如SPWeb.OpenWeb通过在这个 …

sharepoint dispose

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