草庐IT

c# - 将空参数传递给 SignalR 客户端代理时为 "Value cannot be null"

使用SignalR(v2.0.2)我遇到了这个异常:Valuecannotbenull.Parametername:oatNewtonsoft.Json.Utilities.ValidationUtils.ArgumentNotNull(Objectvalue,StringparameterName)atNewtonsoft.Json.Linq.JToken.FromObjectInternal(Objecto,JsonSerializerjsonSerializer)atNewtonsoft.Json.Linq.JToken.FromObject(Objecto,JsonSerial

c# - 我可以在由 XSD C# 生成的类创建的 XML 中的同一标记处拥有 null 属性和其他属性吗?

我有一堆C#类,它们是从XSD自动生成的。然后我根据那些C#类生成XML文件。到目前为止没有任何东西存在。问题:生成的XML文件正在接受验证,验证需要所有带有xsi:nil="true"的XML标签的额外属性。.基本上标签应该是这样的:,但我无法在C#中实现。我的代码是:if(myObject.TestTag.HasValue){t.testTag01=newtestTag01();t.testTag01.Value=myObject.TestTag.Value;}//else//{//t.testTag01=newtestTag01();//t.testTag01.NV="12312

c# - INotifyDataErrorInfo.GetErrors 何时调用 null 与 String.empty?

在msdnpageforInotifyDataErrorInfo.GetErrors它说调用GetErrors方法的参数可以是:我们要为其检索错误信息的属性的名称无String.Empty文档没有说明何时使用null与String.Empty调用此方法。我在我的应用程序中看到了这两种情况,我需要了解何时可以预期其中一种情况。澄清:我不是在问我应该如何实现GetErrors方法(我只是测试null和empty)。问题更多的是理解为什么WPF框架尝试有时使用null有时使用空字符串调用此方法(我在我的应用程序中遇到了这两种情况)。如果目的是询问与特定属性无关的错误,为什么在调用时使用两个不

c# - 为什么 JSON 空字符串在服务器端反序列化为 null?

我通过$.post发送空字符串,它反序列化为null。如何在客户端区分字符串是空还是空?问候更新我实际上在做的是:$.post("Controller/Action",$.param({Name:""},true),null,"json");在服务器上:publicContainer{publicstringName;}publicvoidAction(Containercontainer){boolc=container.Name==null;//cistrue,why?} 最佳答案 具有空值的变量在JSON中写为:{"var":

c# - 对于 expr == null 和 expr != null,与 null 的比较结果为真

我看到了一些非常奇怪的东西,我无法解释。我在猜测一些我不熟悉的C#边缘情况,或者运行时/发射器中的错误?我有以下方法:publicstaticboolHistoryMessageExists(DBContextcontext,stringid){returnnull!=context.GetObject(id);}在测试我的应用程序时,我发现它有问题-它为我知道我的数据库中不存在的对象返回true。所以我停在方法处并立即运行以下命令:context.GetObject(id)nullnull==context.GetObject(id)truenull!=context.GetObje

c# - 如何在 C# 中将 null 数组反序列化为 null?

这是我的类(class):publicclassCommand{[XmlArray(IsNullable=true)]publicListTo{get;set;}}当我序列化这个类的一个对象时:vars=newXmlSerializer(typeof(Command));s.Serialize(Console.Out,newCommand());它按预期打印(省略了xmlheader和默认MS命名空间):当我使用这个xml并试图反序列化它时,我卡住了,因为它总是打印“Notnull”:vart=s.Deserialize(...);if(t.To==null)Console.Write

c# - SQL Server 管理对象 (SMO) 的默认约束不一致

我有一个程序可以使用SQLServer管理对象(SMO)为MicrosoftSQLServer数据库生成DDL脚本。但是,根据服务器和数据库,我收到表的默认约束输出不一致。有时它们与CREATETABLE语句内联,有时它们是独立的ALTERTABLE语句。我意识到两者都是有效且正确的SQL语句,但如果没有一致性,它会阻止多个数据库的输出之间的自动比较,并阻止将输出添加到源代码管理以跟踪数据库模式的更改。如何确保默认约束的脚本输出的一致性?示例程序代码应该简单明了。打开服务器和数据库,然后为每个数据库对象生成单独的脚本文件,再加上一个包含整个数据库脚本的文件。我省略了很多似乎已经生成一致

C# null 合并运算符返回 null

最近我的同事向我展示了一段无法正常工作的代码:publicclassSomeClass{privateIList_categories;publicvoidSetCategories(){_categories=GetCategories()??newList();DoSomethingElse();}publicIListGetCategories(){returnRetrieveCategories().Select(Something).ToList();}}(我知道运算符是多余的,因为linqToList将始终返回一个列表,但这就是代码的设置方式)。问题是_categories

c# - 隐式运算符应该处理 null 吗?

我们有一个具有隐式字符串运算符的类型。它看起来像这样:publicclassFoo{readonlystring_value;Foo(stringvalue){_value=value;}publicstaticimplicitoperatorstring(Foofoo){returnfoo._value;}publicstaticimplicitoperatorFoo(stringfooAsText){returnnewFoo(fooAsText);}}我们刚刚遇到这样一种情况,其中传递给隐式运算符的实例是null。显然,我们以NullReferenceException结束。我认为

c# - SQL Server : ADO.Net GetUpdateCommand ok with PK,在添加另一个聚集唯一索引后失败

我有这样一个带有非聚集主键的表:CREATETABLE[dbo].[StudentGrade]([EnrollmentID][int]IDENTITY(1,1)NOTNULL,[CourseID][nvarchar](10)NOTNULL,[StudentID][int]NOTNULL,[Grade][decimal](3,2)NOTNULL,CONSTRAINT[PK_StudentGrade]PRIMARYKEYNONCLUSTERED([EnrollmentID]ASC))选择语句是:selectEnrollmentID,GradefromStudentGradeGetUpdat