小编Sei*_*bar的帖子

C#逻辑顺序和编译器行为

在C#中,(并且可以随意回答其他语言),运行时评估逻辑语句的顺序是什么?

例:

DataTable myDt = new DataTable();
if (myDt != null && myDt.Rows.Count > 0)
{
    //do some stuff with myDt
}
Run Code Online (Sandbox Code Playgroud)

运行时首先评估哪个语句 -

myDt != null
Run Code Online (Sandbox Code Playgroud)

要么:

myDt.Rows.Count > 0
Run Code Online (Sandbox Code Playgroud)

是否有时候编译器会向后评估语句?也许当涉及"OR"运算符时?


&被称为逻辑按位运算符,并将始终评估所有子表达式

什么是何时使用按位运算符而不是"短路布尔值"的好例子?

c# language-agnostic compiler-construction logic

18
推荐指数
5
解决办法
2099
查看次数

序列化动态加载的类型时,XmlSerializer抛出异常

我正在尝试使用System.Xml.Serialization.XmlSerializer序列化动态加载(和编译的类).如果我将有问题的类构建到主程序集中,一切都按预期工作.但是如果我从动态加载的程序集中编译并加载该类,则会XmlSerializer抛出异常.

我究竟做错了什么?

我创建了以下.NET 3.5 C#应用程序来重现该问题:

using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.Reflection;
using System.CodeDom.Compiler;
using Microsoft.CSharp;

public class StaticallyBuiltClass
{
    public class Item
    {
        public string Name { get; set; }
        public int Value { get; set; }
    }
    private List<Item> values = new List<Item>();
    public List<Item> Values { get { return values; } set { values = value; } }
}

static class Program
{
    static void Main()
    {
        RunStaticTest();
        RunDynamicTest();
    } …
Run Code Online (Sandbox Code Playgroud)

c# reflection serialization

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

SQL Server - Dirty Reads Pros&Cons

我为什么要或不应该使用脏读:

set transaction isolation level read uncommitted
Run Code Online (Sandbox Code Playgroud)

在SQL Server中?

sql sql-server

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

我可以从存储过程返回varchar(max)吗?

带有SQL Server 2005后端的VB.net Web系统.我有一个返回varchar的存储过程,我们最终得到的值不适合varchar(8000).

我已将return参数更改为varchar(max),但如何告诉OleDbParameter.Size属性接受任何数量的文本?

作为一个具体的例子,从存储过程获得返回参数的VB代码看起来像:

objOutParam1 = objCommand.Parameters.Add("@RStr", OleDbType.varchar)
objOutParam1.Size = 8000
objOutParam1.Direction = ParameterDirection.Output
Run Code Online (Sandbox Code Playgroud)

我能做什么.尺寸与(最大)一起工作?

更新:

回答一些问题:

对于所有意图和目的,本文都需要作为一个块出来.(改变这将需要比我想做的更多的结构性工作 - 或者我的授权,真的.)

如果我没有设置大小,我会收到一个错误,读取"String [6]:Size属性的大小为0".

.net stored-procedures sql-server-2005

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

SQL Server - 使用CLR集成来使用Web服务

有一些教程Web上描述了使用SQL Server 2005的CLR集成来使用Web服务.最重要的是,这个过程看起来很复杂.我遇到了几个问题,包括需要更改数据库的信任级别,以及使用sgen工具创建静态XmlSerializer程序集; 我仍然没有把它正常工作......(我确信我只需要花更多的时间和精力)

在使用这种类型的架构时,有哪些安全性,性能和维护含义?这可能是一个使用相当频繁的过程,易于维护相对重要.

我可以自由选择是将它作为UDF集成到SQL Server中,还是将它作为控制台/ Web应用程序的独立.NET库.SQL CLR与外部程序集的集成是否值得麻烦?

sql-server clr web-services

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

查询字符串中哪些字符不安全?

我需要防止导致url漏洞的字符

我的示例网址http://localhost/add.aspx?id = 4; req = 4

请给出我需要阻止的字符列表.

我正在使用ASP.net网页.我从sql server数据库绑定信息.

我只想列出要远离黑客的角色,在网址中输入不需要的字符串

security query-string

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

ADO.NET DataTable约束如何影响性能?

对DataTable(例如PrimaryKey和UniqueContraint)的约束是否使得选择效率与SQL Server中的相同?或者他们唯一的目的是对数据实施规则?

myDT.Constraints.Add("PK", myDT.Columns["UniqueID"], true); //add a primary key
myDT.Constrinats.Add(new UniqueConstraint(new DataColumn[] { //add a unique constraint for UserID
    myDT.Columns["UserID"], myDT.Columns["UniqueID"]
})); 
Run Code Online (Sandbox Code Playgroud)

在通过UniqueID或查找DataTable中的数据时,这些示例是否可能具有更好的性能UserID

.net c# ado.net

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

OO设计 - 您是否在内部使用公共属性或私有字段?

我在C#2.0工作,但这适用于大多数面向对象的语言.当我创建具有包装私有字段的公共属性的类时,我会在内部是否应该使用属性或字段之间来回切换.当然C#3.0使自动属性更容易,但它仍然适用.

有关系吗?

public class Person
{
    private string _name = "";

    public string Name
    {
        get { return _name; }
        set { _name = value; }
    }

    public Person(string name)
    {
        _name = name; //should I use the property or field here?
    }
}
Run Code Online (Sandbox Code Playgroud)

c# oop coding-style

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

Msmdpump.dll OLAP 数据泵抛出 500 错误

如何通过请求msmdpump.dll连接到 SQL Server Analysis Services来解决此问题?我从 IsapiModule 收到 500 错误。

在装有 IIS 8.5 的 Windows Server 2012 R2 机器上,我msmdpump.dll使用以下说明设置了 OLAP 数据泵 ( ):https : //msdn.microsoft.com/en-us/library/gg492140.aspx#bkmk_copy

  • 应用程序池针对 .NET CLR v4.0 配置,采用经典托管管道模式。身份设置为本地服务帐户。(我也尝试过域帐户,并尝试将本地用户设置为管理员)。
  • 根据 MSDN 文章,我在默认网站下创建了一个应用程序,称为 OLAP,带有一个 IsapiModule。

OLAP 数据泵的 IIS 设置

据我所知(并且我已经进行了两次和三次检查),一切都按照 MSDN 文章中的布局进行了配置。此外,与我进行此设置的另一台服务器(在不同的网络上)相比,它本质上是相同的。

当我http://localhost/OLAP/msmdpump.dll在该机器上的浏览器中请求时,收到 500 内部服务器错误。该错误表明它正在尝试使用OLAP我创建的处理程序。这与我在GET向 msmdpump.dll 发出请求时通常期望的错误不同。GET当一切正常时,对于一个直接的正常错误,会在一个 SOAP 信封中发回。就我而言,请求似乎从未被msmdpump.dll.

通过浏览器出现 500 内部服务器错误:

(完整截图见下文)

Module   IsapiModule 
Notification   ExecuteRequestHandler 
Handler   OLAP 
Error Code   0x8007007e 

Requested URL   http://localhost:80/OLAP/msmdpump.dll 
Physical Path   C:\inetpub\wwwroot\OLAP\msmdpump.dll 
Logon …
Run Code Online (Sandbox Code Playgroud)

sql-server iis olap ssas isapi

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

如何限制SQL Server 2005中的失败登录?

我相信我的服务器一直是针对SQL Server 2005(SQLExpress)的暴力攻击的持续目标.我的事件查看器日志填充了SQL Server的"失败审核"消息.尝试通常持续一两个小时,尝试之间间隔1-2秒.

用户'sa'登录失败[客户端:222.169.224.163]

事件ID:18456.基于SQL Server日志中的匹配条目,我发现每个登录由于密码不匹配而失败.我也看到了其他用户的尝试,包括'administrator'和'administrador'.每个会话来自不同的IP地址,来自意大利和中国等国家.

可以采取什么对策?我不想锁定用户帐户,因为我的网站和应用程序将无法访问服务器.有没有办法通过SQL Server 2005来限制登录尝试?例如几何增加失败的登录尝试之间的"等待期"?

sql-server security

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