草庐IT

customer_json_object

全部标签

c# - Large Object Heap Compaction,什么时候好?

首先,多大才算大?有没有办法确定一个对象在堆中有多大?.Net4.5.1带有此LargeObjectHeapCompactionMode:AftertheLargeObjectHeapCompactionModepropertyissettoGCLargeObjectHeapCompactionMode.CompactOnce,thenextfullblockinggarbagecollection(andcompactionoftheLOH)occursatanindeterminatefuturetime.YoucancompacttheLOHimmediatelybyusingc

c# - Json.NET - CustomCreationConverter 中单个属性的默认反序列化行为

在以下场景中,当CrazyItemConverter遇到我要反序列化到的类型中存在的JSON属性时,如何让它照常运行?我有一些像这样的JSON:{"Item":{"Name":"Apple","Id":null,"Size":5,"Quality":2}}JSON被反序列化为一个看起来很像这样的类:[JsonConverter(typeof(CrazyItemConverter))]publicclassItem{[JsonConverter(typeof(CrazyStringConverter))]publicstringName{get;set;}publicGuid?Id{ge

c# - Json.NET 可以使用 Formatting 序列化流式传输吗?

当使用Json.NET库时,您可以在序列化为字符串时指定格式,但在直接序列化为流时我找不到此选项。我错过了什么吗?两种序列化方式的代码如下:publicstaticstringSerialize(MyObjectobj){JsonSerializerSettingssettings=GetJsonSerializerSettings();returnJsonConvert.SerializeObject(obj,Formatting.Indented,settings);}publicstaticvoidSerializeToStream(MyObjectobj,Streamstrea

c# - 如何使用 Moq 为接口(interface)模拟 `object.Equals(object obj)`

我有一个有趣的问题要解决。考虑像这样的一些接口(interface):publicinterfaceIMyThing{intId{get;}}现在我想测试使用这个接口(interface)的代码。也许有一些LINQ魔法。像这样:publicclassSomeClass{privateIMyThing_thing;...publicboolHasThing(IEnumerablethings){returnthings.Contains(_thing);}}我正在模拟所有实现IMyThing的对象使用Moq:publicstaticIMyThingMockMyThing(intnewId

c# - Linq 和相等运算符 : Expression of type 'System.Int32' cannot be used for parameter of type 'System.Object'

我试图重写C#中的相等(==)运算符来处理任何类型与自定义类型的比较(自定义类型实际上是null周围的包装器/框)。所以我有这个:internalsealedclassNothing{publicoverrideboolEquals(objectobj){if(obj==null||objisNothing)returntrue;elsereturnfalse;}publicstaticbooloperator==(objectx,Nothingy){if((x==null||xisNothing)&&(y==null||yisNothing))returntrue;returnfal

c# - 运行所选代码生成器时出错 : 'Object reference not set to an instance of an object.' Error?

我已经尝试了所有解决方案,例如修复VS2013,但没有用。当您通过右键单击Controller文件夹创建Controller并添加Controller时,然后右键单击新创建的Controller的操作并选择添加View,当我尝试创建View时,它就发生了。这不是新项目,而是现有项目。 最佳答案 我在我的VS2017上遇到了这个问题,我通过这样做解决了它:转到C:\Users\username\AppData\Local\Microsoft\VisualStudio\15.0_7fca0c70,您将看到一个名为ComponentMod

C# System.Object.operator==()

我正在努力了解System.Object.operator==()的使用。我的EffectiveC#书和这里的页面(http://www.srtsolutions.com/just-what-is-the-default-equals-behavior-in-c-how-does-it-relate-to-gethashcode)说:“System.Object.operator==()将调用a.Equals(b)以确定a和b是否相等”。所以我的代码:objecta=1;objectb=1;if(object.Equals(a,b)){//Willgetherebecauseitcal

c# - 为什么在原始类型实例上调用 Object 类的某些函数需要装箱?

我发现如果我运行以下代码行。inti=7;i.GetHashCode();//whereGetHashCode()isthederived//functionfromSystem.Object没有装箱,但如果我调用i.GetType()(System.Object的另一个派生函数)代替GetHashCode(),需要装箱才能调用GetType(),为什么不能直接在基本类型实例上调用GetType(),而无需装箱,而它是可能的调用GetHashCode()而不装箱? 最佳答案 这里的关键是GetType()不是虚拟的,不能被覆盖。由于

c# - 使用SQL返回JSON字符串

这是一个“最佳实践”问题。我们正在就此主题进行内部讨论,并希望获得更广泛受众的意见。我需要将数据存储在具有常规列和行的传统MSSQLServer表中。有时我需要将DataTable返回到我的Web应用程序,而其他时候,我需要返回JSON字符串。当前,我将表返回到中间层并将其解析为JSON字符串。这似乎在大多数情况下都能很好地工作,但偶尔会在大型数据集上花费一些时间(解析数据,而不返回表)。我正在考虑修改存储过程,以有选择地返回DataTable或JSON字符串。我只需将@isJsonbit参数添加到SP。如果用户希望使用字符串而不是表,则SP将执行以下查询:DECLARE@result

c# - 当一个操作数是接口(interface)时,回退到 Object 的 == 运算符的原因是什么?

考虑以下类型:classA{}classB{}interfaceIC{}Aa=null;//thevaluedoesn'tmatter-nulloranythingelse,forallthreeBb=null;ICc=null;以下doesnotcompile:varx=a==b;但是以下确实编译(正如我惊讶地发现的那样):varx=a==c;据我所知,编译器回退到使用默认的==运算符,它是在对象上定义的,因此接受任何类型的参数。IL看起来像这样(忽略ldfld的细节):ldarg.0ldfldclassAaldarg.0ldfldclassICcceqstloc.0换句话说,它使用