使用xml编辑对象而不创建新实例

我有一个需要成为单身人士的class级。 它还必须能够在xml文件中加载和保存其字段数据。 以下方法将返回一个新实例,它会破坏我的Singleton模式,从而在我的代码中留下潜在的错误。 public Settings Load() { using (Stream stream = File.OpenRead(FileName)) { XmlSerializer serializer = new XmlSerializer(typeof(Settings)); return (Settings)serializer.Deserialize(stream); } } 我可以使用什么方法更新现有实例中的数据,而不是返回一个全新的实例? 我已经研究了一些Linq到Xml,但没有找到任何好的例子。 我是否有必要将所有现场数据保存在字典中?

错误的PKCS7填充错误:无效长度106

我正在尝试使用以下函数进行加密和解密,但是,它会导致填充错误。 如果我将PaddingMode设置为None ,则会在Log中返回一些字母字符和随机符号。 我可能会错过设置正确结构的内容,如下所示: Cipher Rijndael(AES) 块大小128位(16字节) 模式CBC(密码块链接)密钥 MD5哈希密码 IV与密钥相同 数据编码Base64字符 UTF-8编码 任何帮助修复此错误以及确保满足上述结构的任何帮助将不胜感激! 谢谢 错误 CryptographicException: Bad PKCS7 padding. Invalid length 106. Mono.Security.Cryptography.SymmetricTransform.ThrowBadPaddingException (PaddingMode padding, Int32 length, Int32 position) (at /Users/builduser/buildslave/monoAndRuntimeClassLibs/build/mcs/class/corlib/Mono.Security.Cryptography/SymmetricTransform.cs:363) Mono.Security.Cryptography.SymmetricTransform.FinalDecrypt (System.Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount) (at /Users/builduser/buildslave/monoAndRuntimeClassLibs/build/mcs/class/corlib/Mono.Security.Cryptography/SymmetricTransform.cs:515) Mono.Security.Cryptography.SymmetricTransform.TransformFinalBlock (System.Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount) (at /Users/builduser/buildslave/monoAndRuntimeClassLibs/build/mcs/class/corlib/Mono.Security.Cryptography/SymmetricTransform.cs:554) System.Security.Cryptography.RijndaelManagedTransform.TransformFinalBlock (System.Byte[] inputBuffer, Int32 inputOffset, Int32 […]

为什么我们不能在派生类中使用带参数的构造函数

为什么这不可能? 在使用constructor-parameter实例化“DerivedClass”时,我得到以下编译器错误: ‘GenericParameterizedConstructor.DerivedClass’不包含带有1个参数的构造函数 但调用一个非常相似的方法是有效的 为什么? class Program { static void Main(string[] args) { // This one produces a compile error // DerivedClass cls = new DerivedClass(“Some value”); // This one works; DerivedClass cls2 = new DerivedClass(); cls2.SomeMethod(“Some value”); } } public class BaseClass { internal T Value; public BaseClass() { } public BaseClass(T value) { […]

通过网络扫描发现服务器IP地址

我将开发C#客户端 – 服务器应用程序,我需要告诉客户端客户端或服务器广播可能发生的服务器IP地址是什么。 任何帮助和解决方案都可能非常有用,如果有一些示例代码,那就更好了! 谢谢。

使用asp.net mvc的Job Scheduler

他们的服务器每隔30分钟生成一个包含产品的XML文件,因此我的网站每隔半小时会向我提供一个URL请求,他们的服务器将生成更新的XML列表,并自动导入以更新我们的网站。 有没有人知道如何在asp.net mvc中实现?

如何使用具有特定HTTP引用和查询字符串的WatiN来模拟http请求?

当我使用WatiN转到特定网页时,如何使用查询字符串伪造HTTP引用者 (即请求来自谷歌搜索,查询字符串q = search_term)? 因此,我可以validation响应标头是否具有针对特定引荐来源url的301重定向。 我可能需要使用FiddlerCore来扮演中间人来设置自定义引荐来源,但我还不确定如何做到这一点。 我在C#中使用ASP.NET。 谢谢! //WatiN Browser.GoTo(url);

entity framework – Fluent APi – 使用2 FK创建表格

我有这个产品类,其中包含相关产品列表。 例如: 产品= StarWar AssociatedProducts =第五集:帝国反击,第六集:绝地归来,第七集:原力觉醒 但EF使用一些额外的列生成数据库。 这是我的产品类别: public class Product { public int Id { get; set; } public string Name { get; set; } public string ShortDescription { get; set; } public string FullDescription { get; set; } public decimal UnitPrice { get; set; } …… public virtual ICollection AssociatedProducts { get; set; […]

Windows Azure Project Web角色入口点主机已停止错误

我刚刚开始为Azure开发。 我创建了一个具有Asp.net角色的Azure项目,但是当我尝试调试它而不进行任何更改时,它会出现以下错误:“windows azure web role入口点主机已停止工作”。

正确调用非托管DLL函数的约定

我正在尝试为LibVLC DLL库编写一个简单的超简单轻量级包装器。 我不需要访问太多,只需要播放暂停和停止媒体文件的能力。 我正在查看文档和我发现的其他链接解释了旧版本的LibVLC,但它已经过时了最新版本。 我也试过LibVLC.Net,但它也已经过时了,我找不到我在源代码中寻找的内容,以便将它与我想要导出的函数相匹配。 我有以下签名我正试图导出: libvlc_new (int argc, const char *const *argv) 说明: argc the number of arguments (should be 0) argv list of arguments (should be NULL) 这就是我正在尝试的方法。 [DllImport(“libvlc”, EntryPoint = “libvlc_new”)] public static extern IntPtr New(Int32 argc, String[] argv); 描述表明它应该是一个数组,我认为问题是第二个参数。 我试过了: [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.LPStr)] String[] argv 根据这里的说法,还有一些其他的选项,比如这里建议的String和StringBuilder,但是每当我调用函数时我仍然会遇到Imbalanced PInvoke堆栈。 我需要知道什么是正确的调用约定,很可能是其他几个函数。 “PInvoke For […]

401在SECOND HttpClient / HttpWebRequest上调用未授权

我有一个使用SharePoint 2010 REST API的应用程序。 在创建项目的过程中,有多个请求在彼此之后完成: 1呼叫:从列表中获取项目:成功 2呼叫:创建项目:401未经授权 如果我这样做,这是相同的: 1呼叫:创建项目:成功 2呼叫:删除项目:401未经授权 我所知道的是,我的function是分开工作的,当它们相互呼叫时它们不起作用。 当我在创建项目后关闭应用程序(Windows Phone 8.1应用程序)并重新启动时尝试删除它的工作项目。 首先我认为它与处理我的字段的方式有关,所以我在finally语句中将它们更改为NULL但是这不起作用。 public async Task CreateNewItem(NewItem myNewItem) { try { StatusBar statusBar = await MyStatusBar.ShowStatusBar(“Creating new List Item.”); //Retrieving Settings from Saved file mySettings = await MyCredentials.GetMySettings(); myCred = new NetworkCredential(mySettings.UserName, mySettings.Password, mySettings.Domain); using (var handler = new HttpClientHandler { Credentials = […]