问题列表 - 第29047页

在构造函数期间关闭表单

是否可以在构造函数执行时关闭表单(或者只是在此阶段停止显示)?

我有以下代码:

public partial class MyForm : Form
{        
    public MyForm()
    {
        if (MyFunc())
        {
            this.Close();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这会在Main()中抛出ObjectDisposedException,这里:

    static void Main()
    {            
        ...

        // Following line errors
        Application.Run(new MyForm());
    }
Run Code Online (Sandbox Code Playgroud)

我试过像这样检查MyForm的结果:

static void Main()
{            
    ...

    MyForm frm = new MyForm();
    if (frm != null)
    {
        // Following line errors
        Application.Run(frm);
    }
}
Run Code Online (Sandbox Code Playgroud)

但这似乎没有帮助.有谁能告诉我解决这个问题,好吗?也许是一种检查表单以查看它是否仍然存在的方法?

c# constructor winforms

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

使用Asp.net路由的IRouteHandler.GetHttpHandler中的会话为空

我正在尝试在我的IRouteHandler类的GettHttpHandler方法中启用Session,但session始终为null.有人能告诉我我做错了什么吗?

在global.asax我有

RouteTable.Routes.Add("All", new Route("{*page}", new MyRouteHandler()));
Run Code Online (Sandbox Code Playgroud)

Session为null的MyRouteHandler类如下所示:

public class MyRouteHandler : IRouteHandler, IRequiresSessionState
{
    public System.Web.IHttpHandler GetHttpHandler(RequestContext requestContext)
    {
        string test = HttpContext.Current.Session["test"].ToString();
        return BuildManager.CreateInstanceFromVirtualPath("~/Page.aspx", typeof(Page)) as Page;
    }
}
Run Code Online (Sandbox Code Playgroud)

我做了一个小测试应用程序来显示问题.

有人能告诉我我做错了什么吗?

编辑添加:

是的,我真的需要路由处理程序中的会话数据.有许多原因,但可以轻松解释的是当用户可以切换到以预览模式浏览网站时.

该站点由数据库中的动态页面层次结构(/ page1/page2 ...)组成,可以正常发布或预览.浏览网站的内容制作者可以选择仅查看普通页面或查看发布到预览的页面.浏览模式存储在用户的会话中,因此路由处理程序需要知道浏览模式才能解析所请求的页面.

所以我真的需要在那个阶段的会议.

asp.net session null routing iroutehandler

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

使用perl分割可能包含空格的行

好的,所以我使用perl来读取包含一些常规配置数据的文件.这些数据根据它们的含义组织成标题.一个例子如下:

[vars]

# This is how we define a variable!
$var = 10;
$str = "Hello thar!";


# This section contains flags which can be used to modify module behavior
# All modules read this file and if they understand any of the flags, use them
[flags] 
  Verbose =       true; # Notice the errant whitespace!

[path]
WinPath = default; # Keyword which loads the standard PATH as defined by the operating system. Append  with additonal values.
LinuxPath = default;
Run Code Online (Sandbox Code Playgroud)

目标:使用第一行作为示例"$ …

regex perl whitespace split

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

c#对象初始化程序的复杂性.最佳实践

当对象初始化器出现在C#中时,我太兴奋了.

MyClass a = new MyClass();
a.Field1 = Value1;
a.Field2 = Value2;
Run Code Online (Sandbox Code Playgroud)

可以改写得更短:

MyClass a = new MyClass { Field1 = Value1, Field2 = Value2 }
Run Code Online (Sandbox Code Playgroud)

对象初始化程序代码更加明显,但是当属性数量达到数十并且某些赋值处理可空值时,很难调试"空引用错误"的位置.Studio将整个对象初始值设定项显示为错误点.

现在我只使用对象初始化程序进行简单的赋值,以实现无错误的属性.

如何使用对象初始化程序进行复杂的分配,或者使用十几个分配是不好的做法?

先感谢您!

c# object-initializers

22
推荐指数
1
解决办法
6075
查看次数

条件或js来检测用户是否在Windows XP上?

因为windows xp渲染某些字体非常糟糕,我想检测用户是否正在使用该操作系统并相应地向主体添加类.

我正在寻找一个html条件语句或php $ _SERVER var来做到这一点

但是,如果没有沿着下面的线条执行一条javscript

if(users_os === 'xp'){
    $('body').addClass('xp');
}
Run Code Online (Sandbox Code Playgroud)

我应该坚持哪些途径?!!!

谢谢!


编辑:澄清!

这是在这使得Web应用程序中更好的字体,如果用户它本身安装了一个项目的进一步发展-看到我的解决方案的一部分在这里:延长字体堆栈能力.

字体在OS和浏览器的组合上呈现不同,而不仅仅是浏览器 - 我希望能够知道用户是否在xp上,因为它的Calibri呈现非常差

html javascript php jquery

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

得到Twitter屏幕名称

我是OAuth的新手

我想知道如何使用"Abraham Wiliam的Twitter OAuth库"来获取用户的凭证信息,例如screen_name.

php twitter

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

关于Ruby单例类的一般问题

module MyModule 
  def my_method; 'hello'; end
end

class MyClass 
  class << self
    include MyModule
  end 
end

MyClass.my_method   # => "hello
Run Code Online (Sandbox Code Playgroud)

我不确定为什么"包含MyModule"需要在单例类中才能使用MyClass进行调用.

为什么我不能去:

X = MyClass.new
X.my_method
Run Code Online (Sandbox Code Playgroud)

ruby singleton

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

bash:刷新标准输入(标准输入)

我有一个bash脚本,我主要在交互模式下使用.但是,有时我会在脚本中输入一些输入.在循环中处理stdin之后,我使用"-i"(交互式)复制文件.但是,这永远不会被执行(在管道模式下),因为(我猜)标准输入还没有被刷新.为简化示例:

#!/bin/bash
while read line
do
    echo $line
done
# the next line does not execute 
cp -i afile bfile
Run Code Online (Sandbox Code Playgroud)

将其放在t.sh中,并执行:ls | ./t.sh

不执行读取.我需要在读取之前刷新stdin.怎么会这样呢?

bash stdin flush

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

在jpa中调用序列的下一个值

我有一个类映射为实体,以将其持久保存在数据库中.我有一个id字段作为主键,因此每次持久化对象时,都会从序列"myClass_pk_seq"中检索id的值,该代码类似于以下代码.

@Entity
@Table(name="myObjects")
public class MyClass {
    @Id
    @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="sequence")
    @SequenceGenerator(name="sequence", sequenceName="myClass_pk_seq", allocationSize=1)
    @Column(name="myClassId")
    private Integer id;

    private Integer code;


    ...
}
Run Code Online (Sandbox Code Playgroud)

我需要在"code"属性中创建类似于id的东西.我需要有一个序列,所以我可以为代码分配序列的下一个值(如果用户想要保留它但不保留数据,则保留该值).我的意思是用户将看到该字段,如果他不知道输入什么,他可以按下按钮并在屏幕上接收下一个可能的值(他可以接受或不接受).如何在不保留非主键字段的数据的情况下获取JPA中定义的序列的下一个值(并增加其值)?

我只想要一个方法在与"code"字段关联的序列上调用nextval,并返回该值.使用注释在JPA中执行此操作的最佳方法是什么?

谢谢.

java hibernate jpa sequence nextval

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

NHibernate用于WinForms应用程序的缓存

我有一个带有数据库后端(oracle)的C#WinForms应用程序,并使用NHibernate进行O/R映射.我想尽可能减少与数据库的通信,因为这里的网络很慢,所以我读到了二级缓存.我发现了这个非常好的介绍,它列出了以下可用的缓存实现.

我想知道我应该为我的应用程序使用哪个实现.

缓存应该很简单,它不应该显着减慢第一次出现的查询,并且它不应占用很多内存来加载实现程序集.(使用NHibernate和Castle,该应用程序已占用高达80 MB的RAM!)

  • Velocity:使用Microsoft Velocity,它是一种高度可扩展的内存应用程序缓存,适用于各种数据.
  • 普遍性:使用Bamboo.Prevalence作为缓存提供者.Bamboo.Prevalence是由Prevayler的Klaus Wuestefeld带来的对象流行概念的.NET实现.Bamboo.Prevalence为定位CLR的确定性系统提供透明对象持久性.它为智能客户端应用程序提供持久性缓存.
  • SysCache:使用System.Web.Caching.Cache作为缓存提供程序.这意味着您可以依赖ASP.NET缓存功能来了解它的工作原理.
  • SysCache2:与NHibernate.Caches.SysCache类似,使用ASP.NET缓存.此提供程序还支持基于SQL依赖性的过期,这意味着可以将某些缓存区域配置为在数据库中的相关数据发生更改时自动过期.
  • MemCache:使用memcached; memcached是一种高性能的分布式内存对象缓存系统,本质上是通用的,但旨在通过减轻数据库负载来加速动态Web应用程序.基本上是分布式哈希表.
  • SharedCache:高性能,分布式和复制的内存对象缓存系统.有关详细信息,请参阅此处和此处

到目前为止我的考虑是:

  • 速度似乎相当重量级和过度杀伤(文件完全占用467 KB的磁盘空间,到目前为止还没有测量到它所需的RAM,因为我没有设法让它运行,见下文)
  • 流行,至少在我的第一次尝试中,将我的查询从约0.5秒减慢到约5秒,并且缓存不起作用(见下文)
  • SysCache似乎适用于ASP.NET,而不适用于winforms.
  • MemCache和SharedCache似乎适用于分布式场景.

你建议我使用哪一个?还有一个内置的实现,当然它非常轻量级,但引用的文章告诉我," (...)永远不应该使用这个缓存提供程序来生成代码,而只是用于测试."

除了最适合我的情况的问题,我也遇到了应用它们的问题:

  • Velocity抱怨应用程序配置文件中未指定 " dcacheClient"标记.在配置文件中指定有效标记, "虽然我为程序集创建了一个app.config文件并粘贴了本文中的示例.

  • 如上所述,普遍性严重降低了我的第一个查询速度,下次执行完全相同的查询时,另一个选择被发送到数据库.也许我应该将这个话题"外化"到另一篇文章中.我会这样做,如果有人告诉我,查询速度减慢绝对不寻常,他需要更多细节来帮助我.

c# windows nhibernate caching

11
推荐指数
1
解决办法
1733
查看次数