问题列表 - 第15567页

绑定到Nullable <DateTime>控件属性

我们有一个自定义控件,它具有System.Nullable类型的"Value"属性(又名System.DateTime?).我们有一个具有相同类型的"已接收"属性的对象.当我们尝试将控件绑定到对象时,抛出以下InvalidCastException:

从 '的System.DateTime' 无效转换到 'System.Nullable`1 [[System.DateTime的,mscorlib程序,版本= 2.0.0.0,文化=中性公钥= b77a5c561934e089]]'.

这是我们正在做的事情:

对象属性:

private System.DateTime? _dateTimeReceived;
public System.DateTime? DateTimeReceived
{
    get
    {
        return this._dateTimeReceived;
    }
    set
    {
        this._dateTimeReceived = value;
        this.OnChanged("DateTimeReceived", value); //Implements INotifyPropertyChanged and fires PropertyChanged event
    }
}
Run Code Online (Sandbox Code Playgroud)

控制属性:

private System.DateTime? _value;
[System.ComponentModel.Category("Behavior")]
[System.ComponentModel.Description("The current date value for this control")]
public new System.DateTime? Value
{
    get
    {
        return this._value;
    }

    set
    {
        this._value = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

在应用程序中,抛出异常的位置:

this.dateReceived.DataBindings.Add("Value", this._object, "DateTimeReceived");
Run Code Online (Sandbox Code Playgroud)

如您所见,对象的属性(this._object.DateTimeReceived)是System.DateTime?类型和控件的属性(this.dateReceived.Value)是一个System.DateTime?类型.

为什么会导致InvalidCastException?我们如何纠正这一点,使其正确绑定?

更新2009-10-29 14:26 CDT:

这是堆栈跟踪: …

c# data-binding datetime nullable winforms

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

类中的C++静态成员

是否可以在不首先创建该类的实例的情况下访问和使用类中的静态成员?即将该类视为全局变量的某种倾销

詹姆士

c++ static members

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

我应该使用函数或宏来验证Clojure中的参数吗?

我在Clojure中有一组数字函数,我想验证参数.函数期望有许多类型的参数,例如正整数,百分比,数字序列,非零数字序列等.我可以通过以下方式验证任何单个函数的参数:

  1. 将验证代码写入函数.
  2. 编写通用函数,将参数和期望类型传递给它.
  3. 编写通用宏,将参数和期望类型传递给它.
  4. 其他我没有想到的.

Larry Hunter的一些Lisp代码是#3的一个很好的例子.(寻找test-variables宏.)

我的直觉是宏更合适,因为对评估的控制和编译时计算的潜力,而不是在运行时完成所有操作.但是,我没有遇到我正在编写的代码似乎需要它的用例.我想知道编写这样一个宏是否值得付出努力.

有什么建议?

validation macros clojure

12
推荐指数
1
解决办法
1585
查看次数

除了架构所有者之外,其他用户不会触发架构上的 Oracle 触发器

我有下表和触发器。

CREATE TABLE LogSchema (
    user varchar2(100),
    date_ date,
    operation varchar2(100),
    obj_type varchar2(100),
    obj_name varchar2(100)
);

CREATE OR REPLACE TRIGGER LogSchema
AFTER DDL ON USER1.SCHEMA 
/* can't use ON DATABASE or else it will log 
   everything that happens on all schemas*/
DECLARE
BEGIN
  INSERT INTO LogSchema VALUES
     (USER
       , SYSDATE
       , sys.sysevent
       , sys.dictionary_obj_type
       , sys.dictionary_obj_name);

END LogSchema;
Run Code Online (Sandbox Code Playgroud)

我想记录在 USER1 架构上发生的每个 DDL 操作(创建/删除表/过程等)。仅当 USER1 执行 DDL 操作时才会执行此触发器,如果​​ USER2 对 USER1 架构执行 DDL 操作,例如:

CREATE TABLE USER1.TEST (
        test varchar2(100)
); …
Run Code Online (Sandbox Code Playgroud)

sql oracle triggers plsql

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

以最短的停机时间部署Java Web应用程序的最佳实践?

部署大型Java webapp(> 100 MB .war)时,我目前使用以下部署过程:

  • 应用程序.war文件在开发计算机上本地扩展.
  • 扩展的应用程序是rsync:从开发机器到实时环境.
  • rsync之后重新启动实时环境中的应用服务器.这个步骤并不是严格需要的,但我发现在部署时重新启动应用程序服务器会因为经常加载类而避免出现"java.lang.OutOfMemoryError:PermGen space".

关于这种方法的好处:

  • rsync最大限度地减少了从开发机器发送到实时环境的数据量.上传整个.war文件需要十几分钟,而rsync需要几秒钟.

关于这种方法的坏事:

  • rsync正在运行时,应用程序上下文会在文件更新后重新启动.理想情况下,重新启动应在rsync完成后进行,而不是在它仍在运行时进行.
  • 应用服务器重启会导致大约两分钟的停机时间.

我想找到一个具有以下属性的部署过程:

  • 部署过程中停机时间最短.
  • 上传数据所花费的时间最少.
  • 如果部署过程是特定于应用程序服务器的,那么应用程序服务器必须是开源的.

题:

  • 根据规定的要求,最佳部署流程是什么?

java deployment grails resin tomcat

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

保护Ruby代码

我正在使用Ruby在基于ARM的嵌入式主板上开发一个商业项目,其上有一个定制的Linux内核.项目的目标工作区和设备是一个封闭的环境,没有以太网,inernet,I/O设备等......我想保护我的代码/程序,以便; 它只能在我允许的特定机器上工作(所以;人们不能将我的代码/程序复制并粘贴到他们的嵌入式主板上并在没有权限的情况下运行它).这可以通过机器的MAC地址来完成; 我对这个问题没有任何经验.我想,只是一个简单的if(device.MACAddr =="XX:XX ...... XX")不会被删除(更不用说人们可以轻松地从我的代码中删除支票).我不能使用一些红宝石混淆器,我通过谷歌发现,因为; 设备不运行ruby-external-C-libraries或类似东西,只有纯ruby代码.

所以; 你有什么建议,我应该采取什么样的方法?

ruby security source-code-protection

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

什么时候应该使用宏而不是内联函数?

在之前的一个问题中,我认为一个好的答案被推荐用于建议使用宏

#define radian2degree(a) (a * 57.295779513082)
#define degree2radian(a) (a * 0.017453292519)
Run Code Online (Sandbox Code Playgroud)

而不是内联函数.请原谅新手问题,但在这种情况下,宏的错误是什么?

c macros inline

12
推荐指数
3
解决办法
6473
查看次数

指针和引用之间的低级差异是什么?

如果我们有这个代码:

int foo=100;
int& reference = foo;
int* pointer = &reference;
Run Code Online (Sandbox Code Playgroud)

参考数据和指针数据之间没有实际的二进制差异.(它们都包含记忆中的位置foo)

第2部分

那么指针和引用之间的所有其他差异(这里讨论)会在哪里出现?编译器是执行它们还是它们在可组合级别上实际上是不同类型的变量?换句话说,下面是否生成相同的汇编语言?

foo=100;
int& reference=foo;
reference=5;

foo=100;
int* pointer=&foo;
*pointer=5;
Run Code Online (Sandbox Code Playgroud)

c++ assembly pointers reference

11
推荐指数
2
解决办法
2728
查看次数

将项添加到Dictionary <int,List <int >>

所以我循环遍历一些对象并初始化Dictionary>对象.

首先,我检查密钥是否存在,如果存在,我将添加到列表中

如果没有,我将创建一个新密钥和新列表

这是正确的逻辑吗?
我将不得不这样做:

new List<int>();
Run Code Online (Sandbox Code Playgroud)

我第一次插入项目了吗?

即:

if(myDic.ContainsKey(car.ID))
{
      myDic[car.ID].Add(car.MfgID);
}
else
{
   myDic.Add(car.ID, new List<int>);
   myDic[car.ID].Add(car.MfgID);
}
Run Code Online (Sandbox Code Playgroud)

c# collections dictionary

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

Coldfusion不仅仅是一种演示技术吗?

我最近一直在寻找Coldfusion即将到来的工作.我的背景是ASP.net/MVC和JSP/Servelets.

据我所知,Coldfusion主要是一种与其他技术实现的业务层接口的表示技术.对于琐碎的案例,看起来你可以像PHP一样直接从标记到数据库.

我知道这可能是对产品的简单看法.那么它还有什么用呢?对于像ASP.net/JSP这样的大肆宣传的网络技术使用Coldfusion的商业案例是什么?

coldfusion

0
推荐指数
1
解决办法
370
查看次数