Tag: c#

如何validationXML文档?

我的C#/ .NET应用程序读取由用户手动编辑的XML文件。 应用程序的文档中描述了允许的元素和标记。 我正在使用LINQ从XML文件中提取数据。 在从XML文件中提取数据之前,我想validation它是否具有预期的结构。 如果没有,那么获得有关错误的信息会很好,这样我就可以给用户一些回馈。 在C#中最简单的方法是什么?

将helpstring属性应用于通过COM接口公开的C#属性

我目前正在开发一个库,该库将暴露给COM,用于正在升级的旧项目中。 我正在创建要公开的接口,并且它们具有long,int等类型的属性。 使用DescriptionAttribute,我可以获得.tlb中为接口,类和方法生成的帮助字符串,但由于某种原因,它似乎不想用于属性。 反正有没有在TLB输出中为属性生成一个帮助字符串?

嵌套空值检查C#的简写

据我所知,没有一个更优雅的方式来写下面的…. string src; if((ParentContent!= null) &&(ParentContent.Image(“thumbnail”) != null) &&(ParentContent.Image(“thumbnail”).Property(“src”) != null)) src = ParentContent.Image(“thumbnail”).Property(“src”).Value 你认为应该有一个C#语言function来缩短它吗? 如果是这样,它应该是什么样的? 例如,像扩展?? 操作者 string src = ParentContent??.Image(“thumbnail”)??.Property(“src”)??.Value; 为相当人为的例子和我过度简化的解决方案道歉。 编辑……许多年后 现在这是一个名为“ Null传播运算符 ”的计划语言function?. https://roslyn.codeplex.com/discussions/540883 (谢谢@Brian)

为什么默认情况下WinForms应用程序是STAThread?

使用Visual Studio创建空WinForms应用程序时,模板在主应用程序类中具有STAThread属性。 我一直在阅读一些关于它的文档,但我不确定我是否理解它。 我真的有一些问题: 为什么要添加此属性? 这是什么意思? 如果删除此属性会发生什么?

在entity framework4.1(CodeFirst)中更新对子对象的引用

我正在尝试使用EntityFramework 4.1(CodeFirst)更新我之前保存的对象 Job类具有以下属性…… public class Job { [key] public int Id { get; set; } public string Title { get; set; } public Project Project { get; set; } public JobType JobType { get; set; } public string Description { get; set; } } 初始创建工作正常,但更新只提交对字符串的更改。 如果我将子对象,例如JobType属性从JobTypeA更改为JobTypeB ,则不会提交更改… 我不打算对JobType进行更改 – 仅限于Job。 using (var context = new […]

启动画面显示方法最佳实践C#

我通过在运行主表单之前立即启动新线程来显示启动表单。 在这个线程运行的方法中,我正在使用Application.Run,​​如下面的选项1所示。 这是一个正确的方法,或者是否有问题等我,因为我已经两次调用Application.Run? 另一种选择是选项2,也在下面显示,我调用.ShowDialog()来显示表单。 启动表单本身在指定时间后关闭,在表单本身内控制,并且两个选项似乎都运行良好。 所以我的问题是:哪个更受欢迎 – 选项1还是选项2? 如果你能给出一个或那个很好的具体原因。 谢谢。 主要片段: // Run splash screen thread. Thread splash = new Thread(new ThreadStart(ShowSplash)); splash.Start(); // Run main application. Application.Run(new MainForm()); 显示启动表单选项1: static void ShowSplash() { Application.Run(new SplashForm()); } 显示启动表单选项2: static void ShowSplash() { using (SplashForm splash = new SplashForm()) { splash.ShowDialog(); } }

C#Struct使用技巧?

我喜欢使用结构。 因此,在阅读本文后 ,我是否应该反对使用它们? 也可以看看: 我什么时候应该使用结构而不是类? 何时在C#中使用struct?

Seconds CountDown计时器

我有一个int值为60的lblCountdown。我想让lblCountDown的int值减少几秒,直到达到0。 这是我到目前为止: private int counter = 60; private void button1_Click(object sender, EventArgs e) { int counter = 60; timer1 = new Timer(); timer1.Tick += new EventHandler(timer1_Tick); timer1.Interval = 1000; // 1 second timer1.Start(); label1.Text = counter.ToString(); } private void timer1_Tick(object sender, EventArgs e) { counter–; if (counter == 0) timer1.Stop(); label1.Text = counter.ToString(); }

从C#应用程序到Firefox扩展的通信

我需要从我的C#应用​​程序发送一些字符串(名称,编号)到我的Firefox扩展,我已经阅读了一些做但不知道如何实现它的技巧。 管道 套接字(HTTP请求) 如果它使用HTTP请求更好。 UPDATE onSocketAccepted : function(socket, transport) { alert(“came”) var input =transport.openInputStream(0, 0, 0); alert(input) } 我从C#应用程序发送的消息是否在var输入?

‘System.Web.WebPages.Html.HtmlHelper’不包含’ActionLink的定义

首先 – 我已经搜索了SO并发现了许多问题同样的问题,尽管在我的web.config中添加并没有解决问题… 好的,所以我已经开始了一个基于模板Angular SPA的新项目 – 链接在这里: http://visualstudiogallery.msdn.microsoft.com/5af151b2-9ed2-4809-bfe8-27566bfe7d83 我已将MVC升级到版本5,将webApi升级到版本2 – 与解决方案中的其他项目一致。 现在,在SPA网站的_layout页面中,我尝试使用@Html.ActionLink帮助程序,但不断收到错误’System.Web.WebPages.Html.HtmlHelper’ does not contain a definition for ‘ActionLink 我确信这完全取决于一些web.config配置 – 我安装的软件包和模板配置中的设置之间存在某种冲突。 特别是这部分: 如果我将其更改为使用版本5,那么我会收到无法找到程序集(v5)的错误等。 关于如何解决这个冲突,我的想法已经不多了。 以下是我的SPA web.config中的配置部分 如果我将版本更改为5,我会收到以下错误: Assembly Load Trace: The following information can be helpful to determine why the assembly ‘System.Web.WebPages.Razor, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35’ could not be loaded. === Pre-bind state information === […]