草庐IT

$序列化

全部标签

c# - 使用 newtonsoft.json 反序列化 List<AbstractClass>

我正在尝试序列化和反序列化abstract类列表(mustinheritforvb),显然其中只有派生类的实例。我用JsonProperty(ItemTypeNameHandling=TypeNameHandling.Auto)修饰了列表参数,获得如下所示的输出:但是我反序列化的时候一直说他不能反序列化一个抽象类。http://james.newtonking.com/json/help/index.html?topic=html/SerializeTypeNameHandling.htmpublicclassConcreteClass{privateObservableCollect

c# - 通过 bool 函数排序列表的更短方法

我有一个需要以特定方式排序的列表。我目前是这样解决的:varfiles=GetFiles().OrderByDescending(x=>x.Filename.StartsWith("ProjectDescription_")).ThenByDescending(x=>x.Filename.StartsWith("Budget_")).ThenByDescending(x=>x.Filename.StartsWith("CV_")).ToArray();这些文件将被合并到一个PDF文件中,这里的重点是某些文件应该放在开头,其余的放在最后。我想知道是否有更好的方法来编写这个“模式”,因为它

c# - 序列化和恢复未知类

基础项目包含一个抽象基类Foo。在单独的客户端项目中,有实现该基类的类。我想通过在基类上调用一些方法来序列化和恢复具体类的实例://Inthebaseproject:publicabstractclassFoo{abstractvoidSave(stringpath);abstractFooLoad(stringpath);}可以假设在反序列化时,所有需要的类都存在。如果可能的话,序列化应该用XML完成。使基类实现IXmlSerializable是可能的。我有点卡在这里。如果我对事情的理解是正确的,那么这只能通过向每个实现类的基类添加[XmlInclude(typeof(Unknown

c# - 使用 XmlSerializer.Deserialize 进行反序列化时,何时调用类构造函数?

我的应用程序使用XmlSerializer保存了一个类,然后在需要时通过再次反序列化创建一个实例。我想在我的构造函数逻辑中使用我的类的一些属性成员(在反序列化期间分配)。假设首先分配属性是可以的,一旦分配了所有属性就会调用构造函数吗?继续讨论这个话题,是否有关于反序列化期间发生的事件顺序的文档? 最佳答案 不,假设属性将在构造函数运行时设置是不正确的。反之亦然。构造函数是创建对象实例时运行的第一段代码。在构造函数开始执行之前,不可能设置属性。XML反序列化过程大致如下所示调用无参构造函数将属性设置为其反序列化值解决此问题的一种方法是

c# - 使用 JSON.NET 将 JSON 反序列化为匿名对象

我正在使用JSON.NET对对象进行反序列化,但我无法让它与我正在使用的对象的当前结构一起工作。http://dorobantu.me/post/2010/08/22/Deserializing-JSON-to-anonymous-types-in-C.aspx我的对象目前看起来像这样(我想传递一个对象列表)[{"ID":"ConcurrentUser","FieldType":190,"value":""},{"ID":"SystemType","FieldType":191,"value":null}]我收到错误:CannotdeserializeJSONarrayintotype

c# - 使用 JSON.NET 反序列化 DateTime 时如何保留时区?

这个问题在这里已经有了答案:ParseDateTimewithtimezoneofformPST/CEST/UTC/etc(6个答案)关闭8年前。我正在使用JSON.NET在C#中解析一些JSON。JSON中的字段之一是日期/时间,如下所示:{"theTime":"2014-11-20T07:15:11-0500",//...alotmorefields...}请注意时间部分是07:15:11(GMT-5小时的TZ)我从这样的流中解析JSON:using(varstreamReader=newStreamReader(rcvdStream)){JsonTextReaderreader=

c# - 我可以确定字符串是否可以被 newtonsoft 反序列化吗?

在我的应用程序中,我使用newtonsoft来序列化和反序列化对象,我想知道是否有任何内置API来确定输入字符串是否可以反序列化为特定对象?publicTObjectDeserialize(stringserialized){///Iwantcheckthecondition,andifisnotserializedstringjustreturndefault(TObject)returnJsonConvert.DeserializeObject(serialized);}我不想使用trycatch。目前我是这样实现的,但希望找到一种方法在开始反序列化对象之前验证字符串。我已经看到这

c# - LINQ 方法的序列有什么重要性吗?

只是想知道,添加LINQ方法的顺序是否重要?例如。using(MyDataContextcontext=newMyDataContext()){varuser=context.Users.Where(u=>u.UserName.StartsWith("t")).OrderByDescending(u=>u.CreatedDate).FirstOrDefault();}和这个完全一样吗?using(MyDataContextcontext=newMyDataContext()){varuser=context.Users.OrderByDescending(u=>u.CreatedDat

c# - 如何序列化/反序列化从另一个程序集加载的对象?

我想序列化/反序列化一个对象,该对象已被另一个从程序集中加载的对象实例化:Interfaces.cs(来自引用的程序集Interfaces.dll)publicinterfaceISomeInterface{ISettingsSettings{get;set;}}publicinterfaceISettings:ISerializable{DateTimeStartDate{get;}}SomeClass.cs(来自引用的程序集SomeClass.dll)publicclassSomeClass:ISomeInterface{privateMySettingssettings=newS

c# - 序列包含多个匹配元素 - 使用 Entity Framework 添加项目

我用谷歌搜索了这个,但没有得到针对我的特定情况的任何答案。我正在以一种看似简单的方式使用EntityFramework。我正在尝试向Memberproduct表中添加一条记录。但是我得到了一个没有意义的异常。知道这里出了什么问题吗?成员(member)产品类:publicclassMemberProduct:ISaleable{publicvoidProcessSale(){thrownewNotImplementedException();}privateintid{get;set;}privatestringproductName{get;set;}privatedecimalpr