小编Mar*_*cel的帖子

CultureInfo.CreateSpecificCulture()与类的构造函数之间的区别?

该类CultureInfo提供了两种创建方式:

MSDN文档确实略有不同,提到构造函数的一些"Windows文化".但这真的很重要吗?

我应该更喜欢两个中的一个吗?

注意:如果重要的话,我使用的是.NET 3.5版本,我想这样使用它:

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(culture);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture);
Run Code Online (Sandbox Code Playgroud)

本答案所述.

c# globalization cultureinfo .net-3.5

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

NHibernate 3.0:没有使用QueryOver的FirstOrDefault()?

我正在使用FluentNHibernate和NH 3.0,使用LINQ提供程序和新的QueryOver语法.

现在使用QueryOver我想得到一个项目(称为结果),其时间戳值尽可能接近给定值,但不是更大:

 Result precedingOrMatchingResult = Session.QueryOver<Result>().
        Where(r => r.TimeStamp < timeStamp).
        OrderBy(r => r.TimeStamp).Desc.                
        FirstOrDefault(); //get the preceding or matching result, if there is any
Run Code Online (Sandbox Code Playgroud)

现在,Intellisense告诉我,没有一种FirstOrDefault()方法.当然,我可以枚举我的有序查询,然后使用LINQ获取我的项目.但这会首先将所有项目加载到内存中.

有没有替代FirstOrDefault(),或者我理解完全错误的东西?

linq nhibernate linq-to-nhibernate queryover

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

XmlTextWriter和XmlWriter有什么区别?

我在C#中看到这两个类:XmlTextWriterXmlWriter.任何人都可以解释差异并告诉我在哪里使用哪个?

c# xml xmlwriter xmltextwriter

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

Nullable <int>是"预定义值类型" - 或者Equals()和==如何在这里工作?

对于我自己实现的Equals()方法,我想检查一堆内部字段.我是这样做的:

...
_myNullableInt == obj._myNullableInt &&
_myString == obj._myString &&
...
Run Code Online (Sandbox Code Playgroud)

我假设,这比较值,包括null,对于相等而不是对象地址(作为参考euqality比较操作),因为:

对于此MSDN文档中的 "预定义值类型" ,可以这样说.我假设Nullable<int>是这样一个"预定义的值类型",因为System根据这个MSDN文档,它在命名空间中.

我是否正确地假设VALUES在这里进行比较?

注意:单元测试显示"是",但我希望其他人对这个问题感到放心,以防我错过了什么.

.net c# nullable value-type string-comparison

27
推荐指数
2
解决办法
915
查看次数

在C#中:如何声明类型为键的通用字典和该类型的IEnumerable <>作为值?

我想声明一个存储IEnumerable特定类型的类型的字典,并将其确切类型作为键,如下所示:(编辑后跟随johny g的评论)

private IDictionary<Type, IEnumerable<T>> _dataOfType where T: BaseClass; //does not compile!
Run Code Online (Sandbox Code Playgroud)

我想要存储的具体类都是从BaseClass派生的,因此想把它当作约束.编译器抱怨它希望在成员名称后面加一个分号.

如果它可以工作,我希望这将使后来从字典中检索简单如下:

IEnumerable<ConcreteData> concreteData;
_sitesOfType.TryGetValue(typeof(ConcreteType), out concreteData);
Run Code Online (Sandbox Code Playgroud)

如何定义这样的字典?

c# generics dictionary types

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

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

AJAX调用不受信任(自签名)的HTTPS无声地失败

我想对使用自签名证书的安全服务器进行AJAX调用.在我的应用程序使用的环境中,这很好 - 我可以向用户提供CA证书,并让他们在使用应用程序之前安装它.但是,有时,用户会在安装证书之前尝试访问该应用程序.在这些情况下,应用程序默默地失败 - 至少在Firefox(问题的最常见情况)中,看起来调用无声地死亡,甚至没有触发错误处理程序.FWIW,如果用户访问服务器上的实际页面,则会收到证书警告.

我可以破解一个解决方法 - 例如,发出一个心跳/ ping请求并设置一个看门狗定时器来查看服务器是否及时响应 - 但这看起来好吧,哈希.我希望能够提前测试连接.确保要与之交谈的服务器具有来自Javascript的可信证书的"正确"方法是什么?如果它有任何区别,我正在通过JQuery做我的AJAX请求.

更新:这里有一个很棒的妙语.事实证明,AJAX根本不是问题.我确信它基于与自签名证书相关的症状,但缺乏AJAX错误令人不安,尤其是.鉴于以下答案中链接的规范.另一个团队成员钉了它:AJAX错误处理程序没有启动,因为JQuery从未加载过!我们在我们网站的另一个子域中包含了JQuery,也是在HTTPS上托管的 - 用户为ourService.example.com添加了例外,但没有为js.example.com添加例外.显然,如果您将<script>标记指向不受信任的安全连接,那么它也会无声地失败.

{/ headdesk}

ajax ssl jquery ssl-certificate

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

为什么Convert.ToInt32()舍入到最接近的偶数,而不是最接近的整数?

查看Convert.ToInt32()它的msdn文档说明:

如果值在两个整数之间,则返回偶数; 也就是说,4.5转换为4,5.5转换为6.

http://msdn.microsoft.com/en-us/library/ffdk7eyz.aspx

为什么是这样?

当然,舍入到最接近的整数更合乎逻辑,不是吗?如果是这样,4.5将变为5,而5.5将变为6,这似乎更直观.

c# decimal int32 rounding

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

foreach只执行一次查询吗?

我有一个项目列表和LINQ查询.现在,使用LINQ的延迟执行,后续的foreach循环是否只执行一次查询或循环中的每次转弯?

给出这个例子(取自LINQ查询简介(C#),在MSDN上)

    // The Three Parts of a LINQ Query: 
    //  1. Data source. 
    int[] numbers = new int[7] { 0, 1, 2, 3, 4, 5, 6 };

    // 2. Query creation. 
    // numQuery is an IEnumerable<int> 
    var numQuery =
        from num in numbers
        where (num % 2) == 0
        select num;

    // 3. Query execution. 
    foreach (int num in numQuery)
    {
        Console.Write("{0,1} ", num);
    }
Run Code Online (Sandbox Code Playgroud)

或者,换句话说,如果我有以下情况会有什么不同:

    foreach (int num in numQuery.ToList())
Run Code Online (Sandbox Code Playgroud)

而且,如果底层数据不在数组中,而是在数据库中,这是否重要?

c# linq tolist

20
推荐指数
2
解决办法
4992
查看次数

Web窗体模型绑定:如何省略不可见控件的绑定?

我正在使用.NET Framework版本4.5.1的WebForms的新模型绑定功能.我希望实现的是,根据一些条件排除一些双向绑定.

我非常喜欢Scott Guthrie撰写的(希望现在很有名)博客文章系列.我使用Web Forms Model Binding Part 3:更新和验证(ASP.NET 4.5系列)中的第二种方法实现编辑页面

这就是我所拥有的:(简化,在ElementEdit.aspx中):

<asp:FormView runat="server" ID="FormViewElement" RenderOuterTable="false" DefaultMode="Edit" DataKeyNames="ElementId"
    ItemType="Business.Entities.Element"
    SelectMethod="GetElement"
    UpdateMethod="UpdateElement">
    <EditItemTemplate>
        <asp:Panel runat="server" DefaultButton="ButtonSpeichern">
            <fieldset>
                /*some databound controls*/
                <asp:Panel runat="server" Visible="<%# !Item.CurrentElementData.SomeCondition() %>">
                    /*more databound controls*/
                </asp:Panel>
                /*the submit button ("ButtonSpeichern")*/
            </fieldset>
        </asp:Panel>
    </EditItemTemplate>
</asp:FormView>
Run Code Online (Sandbox Code Playgroud)

如您所见,包裹的内部面板上的可见性存在"更多数据绑定控制"的条件.当条件为真时,这些应该仅绑定,并且它们是可见的.否则它们不应该绑定而不能更改值.

更新的工作方式类似于Scott的帖子(简化,在xxPage.cs中),它是Type Element的通用基类:

protected virtual bool UpdateEntity(int id) {
    T existing = UseCase.GetItem(id); //gets the original element    

    TryUpdateModel(existing); //SHOULD NOT update the invisible databound controls, but …
Run Code Online (Sandbox Code Playgroud)

c# asp.net controls webforms model-binding

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