C#图像二进制序列化
我正在努力将二进制序列化与内部图像序列化,但我得到了一个例外: " type'system.windows.controls.image'indaybly'threseptionFramework,版本= 4.0.0.0,文化=中性,publicKeyToken = 31bf3856ad364e35'并未标记为可序列化. 这是我的序列化器 public static bool FileSerializer(string filePath, T objectToWrite,out string strError, bool append = false) { using (Stream fileStream = File.Open(filePath, append ? FileMode.Append : FileMode.Create)) { strError = String.Empty; try
18 2024-04-26
编程技术问答社区
添加 KnownType 属性会导致未知错误
我正在使用datacontract/dataMembers将我的类序列为JSON的网络服务,除了我的一个成员之一,它可以是A类或B类,其中B类扩展了A类. . 如果我省略了newtype参数,则在序列化过程中抛出一个例外: Type 'ClassB' with data contract name 'ClassB:http://schemas.datacontract.org/2004/07/MyApp.App_Code' is not expected. 正如预期的那样,因为ClassB是A类的扩展,因此对Deserialiser不知道.因此,我需要将已知类型属性添加到包含成员 的父类中 [KnownType(typeof(ClassB))] [DataContract] 这可以很好地编译,但是我当前正在测试的页面似乎很宽松,它加载了良好,但是显然该服务不再存在,因为我的JS呼叫告诉我,抛出和错误.但是我不知道为什么在我的类上添加已知类型属性会导致Web服务显然不存
4 2024-04-26
编程技术问答社区
以最有效的方式从SQL Server 2005读取UTF8(XML)数据
我想从SQL Server 2005读取大量数据(单列NVARCHAR(MAX)),并将其验证为对象.我们目前正在使用以下内容,但这还不够快,没有更好/有效的方法来执行此操作? using(MemoryStream stream = Encoding.UTF8.GetBytes((string)cmd.ExecuteScalar())) { XmlTextReader xmlReader; DataContractSerializer deserializer; deserializer = new DataContractSerializer(typeToDeserialize); xmlReader = new XmlTextReader(stream); return deserializer.ReadObject(xmlReader); } 我试图用sqldatareader和getBytes做到这一点,但后来我得到了例外. thanx提前
14 2024-04-26
编程技术问答社区
在Json中对抽象队列<T>进行解压缩
我有一个抽象类KVP的队列.我排队2个从KVP继承的不同对象.当我将队列序列化时,一切正常,但是由于无法构建KVP,因此在避难所中失败了. 如果它是一个非通用对象,我可以作为动态化,但是我不确定如何对可以容纳事件和ID的队列进行挑选. 示例代码: public virtual async Task LoadFromFile(string FileName, bool addToExistingQueue,bool DeleteFileAfterLoad = true) { try { IFile File = await PCLStorage.FileSystem.Current.LocalStorage.GetFileAsync(FileName); var serializedText = await File.ReadAllT
10 2024-04-26
编程技术问答社区
是否可以平铺(隐藏)一个Dictionary变量名?
当我想将其序列化为JSON的班级时,我遇到了一种情况,我不确定如何最好地解决.它与具有固定属性和随机属性的JSON结构有关(固定:始终具有相同的属性名称,随机:它们的名称是随机的).另外,固定属性始终是类型string,随机属性始终为type MyJsonClass2. 例如: { "fixedName1": "value1", "fixedName2": "value2", "randomName1": { ... }, "randomNameN": { ... } } 这可以使用Dictionary表示.但是,由于始终给出fixedName1和fixedName2,我想将它们作为固定声明,并且只有字典中的变量如下: class MyJson { public string fixedName1 = "blah1"; public string fixedName2 = "blah2"; publi
12 2024-04-26
编程技术问答社区
不同对象的序列化列表
大家好,我需要帮助,我无法弄清楚如何序列化/挑选序列化,我尝试了很多在堆栈溢出上看到的东西,但没有任何效果. 情况在这里,我有一个动物园类,可以创建一个列表 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Xml.Serialization; namespace TP3 { class Zoo { private List zooList; public Zoo() { zooList = new List(); } public void add ( object animal) { zooList.Add(ani
18 2024-04-26
编程技术问答社区
为什么我们不能将这些对象序列化?
为什么我们不能将对象序列化为随机访问文件?另一方面,我们可以将对象序列化为顺序访问文件? "" C#不提供在运行时获得对象大小的手段.这意味着, 如果我们将课程序列化,则无法保证固定长度的记录大小""(从我阅读的书中). 因此,我们无法读取随机访问文件,因为我们不知道文件中的每个对象大小,所以我们如何寻找? 解决方案 标记SerializableAttribute属性的任何对象都可以序列化(在大多数情况下).序列化的结果始终针对流,这很可能是文件输出流. 您是否在问为什么不能部分地进行对象图? .NET序列化[de]序列化完整的对象图.否则,您将必须转向其他序列化格式,或编写自己的序列化. 要直接随机访问文件,您必须使用支持寻求的流的流. 编辑: 从序列化中寻求所得的流没有实际目的 - 只有序列化格式知道那里的内容,并且应始终在流的开始时喂食. 将数据持续到其他结构中;在两个阶段的过程中进行:首先,将序列化字节定为[即记忆支持的]流,您可以从
6 2024-04-26
编程技术问答社区
如何从不同的函数和类访问返回的对象
我有一个C#应用程序,一旦按下按钮,它将将Web请求发送到Web API并检索所有JSON值.然后将它们供应到一个对象,然后返回到该函数的位置. 现在,我正在尝试访问另一类从getapi函数返回的对象. 不能将类型的'对象'转换为'gw2_tradingpost.listings'. 存在明确的转换(您是否缺少演员?)行32 我知道我做错了,但是我无法掌握 是错误的. form1.cs private void button1_Click(object sender, EventArgs e) { Listings Listings = new Listings(); api_Request api_Request = new api_Request(); Listings richTextBox1 = api_Request.GetApi("https://api.guildwars2.com/v2
8 2024-04-26
编程技术问答社区
我的自定义REST串行器不工作的原因可能是什么?
MyBehavior :: createSerializer()的两种方法都不是出于某种原因,而是替换behavior()方法正在使用.它正在通过我的自定义行为改变默认行为. 有人知道问题在哪里? 重点是编写应生成非XML文本格式结果的自定义REST WCF序列化器. public class MySerializerFormatAttribute : Attribute, IOperationBehavior { public void AddBindingParameters(OperationDescription description, BindingParameterCollection parameters) { } public void Validate(OperationDescription description) { } private stati
18 2024-04-26
编程技术问答社区
将一系列字符串序列化到文件中,并随机读回一个选择。
我正在研究一个随机生成角色(包括其名称)的游戏.我打算将名称分为2-4个部分(前缀,中间,后缀);每个部分将是一个简短的(1-4个字符)字符串,将从文件中随机选择并组合以创建全名.例如,如果文件中所选的部分是" bor"," o"和" mir",则角色的名称应读为" boromir". 填充该文件的理想方式是什么(就像我说的那样,它需要包含很多1-4个字符字符串),序列化,然后根据需要随机选择这些字符串? 我真的没有太多想法要解决;我以前从未做过这样的事情,但是任何提示或建议肯定会不胜感激.谢谢. 解决方案 说,您将名称存储在文本文件中,每行中有一个名称子部分,您可以从System.io.io.file类中读取所有名称[] [] [] [] [] P> s2tte0y1.aspx 同样,您可以使用WriteAlllines() 将字符串[]写回文件 http://msdn.microsoft.com/en-en-us/library/92e05ft3.as
8 2024-04-26
编程技术问答社区
JSON C#反序列化数组中的1个项目为对象
我有这样的JSON结构,我无法更改此结构,因为它来自我无法访问的Web服务. [ { "query": "BusinessFunction", "result": [ { "id": [ "10247" ], "lastModificationUser": [ "maxmustermann" ], "description": [], "name": [ "Engineering Data Mgmt" ], ... }, { "id": [ "10455" ], ... } }, ... ] 您可以看到,每个属性都有一个精确参数的数组.是否有一种简单的方
8 2024-04-26
编程技术问答社区
我可以将BitArray序列化为XML吗?
我有一个我需要序列化XML的商务舱.它具有BitArray属性. 我已经用[XmlAttribute]装饰了它,但是序列化正在失败 为XML可序列化,从Icollection继承的类型必须在其继承层次结构的所有级别上都具有add(System.Boolean)的实现. system.collections.bitarray不实现add(system.boolean). 我不确定是否可以序列化XML? 如果不是,什么是序列化bitarray的有效手段 感谢您的查看 解决方案 您不能直接将bitarray序列化为XML.原因是,为了去除序列化,您需要一个添加方法,而bitarray不提供. 但是,您可以将其复制到可以序列化的数组: BitArray ba = new BitArray(128); int[] baBits = new int[4]; // 4 ints makes up 128 bits ba.CopyTo(baBits,
6 2024-04-26
编程技术问答社区
如何定制Object的XML序列化输出?
我有我想序列化的可自定义对象类: public partial class CustomObject { public List Properties; } public class CustomProperty { public object Value; [XmlAttribute] public string Name; } // some class to be used as a value for CustomProperty public class Person { public string Name; public string Surname; public string Photo; [XmlAttribute] public int Age; } 当前XML序列化输出如下:
0 2024-04-26
编程技术问答社区
用C# XmlSerializer反序列化通用的List's的问题
我与Microsoft的.NET XMLSerialializer一起遇到了一些砖墙.我正在尝试将一些XML划分为一个对象,如果我使用一个对象,这很好,但是当一个人将对象放入列表中并试图序列化/进行序列化时,问题就来了.首先,这是一个示例C#Windows控制台程序来说明问题: http://pastebin.com/m22e6e275 如果类'foo'被序列化为根元素,则情况表现良好,并且正如预期的那样 - 将jeznamespace xmlns应用于root foo元素,并且值得很好.但是,如果我创建列表并序列化,则XMLSerializer: - 创建arrayoffoo的根元素 - 将foo元素作为该元素的孩子 - 将每个FOO的每个孩子的XMLN设置为Jeznamespace名称空间! 我对前两个很好,但是第三个似乎很生气...也许是XMLSerializer中的错误?有什么办法可以处理这种行为吗?我不想为每个FOO的孩子指定我的命名空间,我只想为foo指定它
2 2024-04-26
编程技术问答社区
为什么序列化一个ImageList的效果不好?
我正在使用BinaryFormatter,我序列化treeview. 现在我想对ImageList 做同样的事情 我使用此代码序列化: public static void SerializeImageList(ImageList imglist) { FileStream fs = new FileStream("imagelist.iml", FileMode.Create); BinaryFormatter bf = new BinaryFormatter(); bf.Serialize(fs, imglist.ImageStream); fs.Close(); } 和这个值得注意的: public static void DeSerializeImageList(ref ImageList imgList) { FileStream fs
2 2024-04-26
编程技术问答社区
我如何用一个给定的ElementType创建一个数组类型的实例?
如何创建一个类型对象,该对象代表具有给定元素类型的数组的类型? Type t = MakeArrayType(elementType); // How? 使得 Assert(t.GetElementType() == elementType); 我可以创建我所请求的数组的虚拟实例,然后从那里获取类型.但是我想知道是否有一种方法可以在不先创建实例的情况下获取类型? object myArrayInstance = Array.CreateInstance(elementType, 0); Type t = myArrayInstance.GetType(); // This is the desired type. 解决方案 如果t是指Type,则t.GetType()显然是typeof(Type)或subtype -not typeof(Array). 但是,我怀疑您想要 Type.MakeArrayType : Type arrayTy
0 2024-04-26
编程技术问答社区
如何将一些简单的审计数据序列化,以便存储在 SQL 表中?
我在SQL Server中有一个审核表.它要记录每个高级用户操作的条目,例如更新记录,添加新记录,删除记录等. 我具有检测和记录所做的所有更改的机制(在.NET中,不是作为数据库中的触发器),并且具有记录字段名称,上一个值和新值的对象集合.我想将字段更改存储在同一表中(不是在单独的表中我想记录字段级审核数据的字段). 我想我只想获取我的对象图(基本上只是这些字段更改对象的列表)并将其序列化并将序列化版本存储在表中. 稍后,当用户想查看更改时,我可以将字段化并重建字段的集合. 那么,在.NET 3.5中使用的最佳框架/序列化格式是什么?我不太介意大小,也不必是可读的. 解决方案 避免使用长期存储的任何东西(例如在数据库中);因为它包含类型/汇编元数据,因此您可以轻松地发现以后无法启用数据.再加上.NET特定!因此,如果您想从任何其他平台上阅读它,您会有点熟悉. JSON(通过JSON.NET)将制作出一种简单,可读的格式,并不会占用太多空间. XML通
2 2024-04-26
编程技术问答社区
有什么办法可以将电影对象保存在其他文件内,并将它们与实际收集的文件联系起来?
我在HashSet中有一个Movie对象的集合.电影类型的属性具有Name,Year,Length,Genre,等等. 我还存储在单个文件中的用户配置文件.我想让每个用户都有许多喜欢的电影. ,但我不确定如何"连接"/将这些电影引用在用户配置文件中. 我应该只依靠名字吗? 将最喜欢的电影存储在这些单独的用户资料中的最佳方法是什么?除了使用名称外,我想不出其他任何东西,但这感觉就像是一种脆弱的方式.电影名称也不是唯一的.有一些名称. 有什么想法? 解决方案 如果您希望将您的Movie对象链接到另一个对象,我假设将其保存为持久性,那么您可能想拥有某种唯一的标识符(Guid可能可能)与Movie类相关. User类将有一个Guid s的列表,该Guid代表连接为收藏夹的电影(或者您可以用实际的电影对象预处理) 其他解决方案 我不知道以下方法是最好的,但是您是否考虑过从字节数组(保存到磁盘或数据库时)产生哈希值? 您可以找到
8 2024-04-26
编程技术问答社区