Tag: .net

如何在c#中序列化/反序列化不可变列表类型

如果我定义了一个类 [DataContract()] class MyObject { [DataMember()] ImmutableList Strings { get; private set} } ImmutableList类型来自immutables库https://www.nuget.org/packages/Microsoft.Bcl.Immutable 。 请注意,类ImmutableList没有默认构造函数或可变的Add方法。 将内容添加到列表中即可获取表单。 myList = myList.Add(“new string”); 我是否可以为.NET序列化机制添加一些自定义支持以支持此类型并向其显示如何对其进行反序列化? 目前,在反序列化时只会跳过该集合,尽管可以将其序列化。

如何在不创建新的表单实例的情况下在表单之间切换?

在我的应用程序中,我有四个表单form1 form2 form3 form4。每个表单有两个按钮,即下一个和上一个按钮,可以在表单之间切换。我的问题是如何在不创建新的表单实例的情况下在表单之间切换? 下面是我的代码 在Form1中: public Form1() { InitializeComponents(); } private void Next_Click(object sender, EventArgs e) { this.Hide() Form2 form2 = new Form2(); form2.Show(); } 在Form2中: public Form2() { InitializeComponents(); } private void Previous_Click(object sender, EventArgs e) { this.Hide(); Form1 form1 = new Form1(); form1.Show(); } private void Next_Click(object sender, EventArgs e) { this.Hide(); […]

使用ReferenceLoopHandling.Ignore序列化循环相关的ISerializable对象时抛出StackOverflowException

我有一个遗留应用程序,它使用二进制序列化来保存数据。 现在我们想使用Json.net 4.5来序列化数据,而不需要对现有类进行太多更改。 事情很顺利,直到我们打了一个循环的依赖类。 有没有解决这个问题的解决方法? 示例代码如下所示 [Serializable] class Department : ISerializable { public Employee Manager { get; set; } public string Name { get; set; } public Department() { } public Department( SerializationInfo info, StreamingContext context ) { Manager = ( Employee )info.GetValue( “Manager”, typeof( Employee ) ); Name = ( string )info.GetValue( “Name”, typeof( […]

在C#中优化代码是否存在风险?

在VS2010 Pro的构建设置面板中,有一个标签为“优化代码”的CheckBox ……当然,我想检查一下……但是要非常谨慎,我问我的兄弟,并且他说它未经检查以进行调试,并且在C ++中它可能会做一些会破坏或破坏代码的事情……但他不了解C#。 所以我的问题是,我可以在此框中查看我的发布版本而不必担心它会破坏我的代码吗? 第二,如果它可以破坏代码,何时以及为什么? 链接到解释欢迎。

使用RegEx在大括号之间提取字符串,即{{content}}

我得到一个字符串,其格式为{{some_text}}。 我想使用C#将其提取到一个集合中,并相信RegEx是最好的方法。 RegEx有点过头,但在这种情况下似乎足够强大。 这是我的例子: {{element=’h1′}} {{element=’price’}} 我想最终得到这样的东西: collection [0] =“element =’title’”; collection [1] =“url”; collection [2] =“element =’photo’property =’src’maxwidth =’135’”; collection [3] =“element =’h1’”; collection [4] =“element =’price’”; 请注意,也没有重复项,但如果难以做到,我不想让事情复杂化。 我看到这篇文章做了类似但在括号内的内容 : 如何使用Regex在c#中的文本字符串中提取方括号的内容 我的问题是我有双括号而不是一个字符。 我怎样才能做到这一点?

WMI:插入时获取USB设备描述

如何在插入USB设备时获取设备ID和其他说明? 我找到了一个如何获得USB设备插入/删除通知的示例。 但是如何获取设备desrtiption信息? 这是我的代码片段: WqlEventQuery q; ManagementScope scope = new ManagementScope(“root\\CIMV2”); scope.Options.EnablePrivileges = true; try { q = new WqlEventQuery(); q.EventClassName = “__InstanceDeletionEvent”; q.WithinInterval = new TimeSpan(0, 0, 3); q.Condition = @”TargetInstance ISA ‘Win32_USBControllerdevice'”; w = new ManagementEventWatcher(scope, q); w.EventArrived += new EventArrivedEventHandler(USBRemoved); w.Start(); } … catch()…. 更新:实际上,它是一个带USB连接的串行COM设备。 所以没有driveName属性。 如何获取USB描述,我可以在设备管理器中看到? WMI是否提供有关USB插入的通知的此信息?

Windows API和.net语言

人们总是告诉我,如果我正在做一些应该使用一些Windows API来完成任何进程级别工作的应用程序,我必须使用VC ++而不是任何其他.net语言。 这有什么道理吗? 使用VC ++可以完成的一切都可以用其他.net语言完成吗? 当比较它们的function时,所有的.net语言都是一样的吗?

将图像从word文档转换为位图对象

根据项目要求,我们需要将图像从word文档转换为位图对象。 为此,我们尝试将inlineshape对象从Microsoft.Office.Interop.Word dll转换为位图。 但无法获得成功,将剪贴板对象设为null。 请找到我们尝试的代码如下; using System.Drawing; using Microsoft.Office.Interop.Word; namespace WordApp1 { class Program { static void Main(string[] args) { Application wordApp = (Application)System.Runtime.InteropServices.Marshal.GetActiveObject(“Word.Application”); Documents documents = wordApp.Documents; Document d = null; foreach (Document document in documents) { if (document.ActiveWindow.Caption.Contains(“{Word document name}”)) { d = document; } } foreach (InlineShape shape in d.InlineShapes) { shape.Range.Select(); […]

我可以在.Net中加载到内存中的DataTable的最大大小是多少?

我可以在.Net中加载到内存中的DataTable的最大大小是多少? 是否存在人为限制,或者仅受我运行代码的框的限制?

枚举inheritance自int

我在这段代码中找到了这个地方: public enum Blah: int { blah = 0, blahblah = 1 } 为什么需要inheritanceint? 它需要吗?