Tag: c#

处理WM_CLOSE消息发送到C#Tray App

我发现了一些文章,告诉我如何使用WM_CLOSE消息,但我的应用程序永远不会是那个必须处理WM_CLOSE消息的人。 有没有办法挂钩WM_CLOSE并处理它? 因为WM_CLOSE只关闭托盘图标但不终止进程本身… 问候,

SmtpClient不会通过SSL / TLS进行身份validation(不指向gmail)

我有一个ssl / tls服务器(nodejs),作为postfix / sendmail的代理,对外发邮件执行一些预处理/数据获取。 从C#,我可以使用以下代码手动连接和validation: var sslStream = new SslStream(tcpClient.GetStream(), false, new RemoteCertificateValidationCallback(CertificateValidation), new LocalCertificateSelectionCallback(CertificateSelectionCallback)); string fn = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, “cert.pem”); X509Certificate c = X509Certificate.CreateFromCertFile(fn); var certs = new X509CertificateCollection(); certs.Add(c); sslStream.AuthenticateAsClient(System.Environment.MachineName, certs , SslProtocols.Default, false); 但是,我无法连接SmtpClient。 顶级错误是超时,但我已调试到SmtpClient / SmtpConnection,并且潜在的错误是流不可读,大概是因为它从未经过身份validation(我无法在我的ssl / tls代理服务器中找到一个断点) SmtpClient代码,但上面的手动sslConnection工作正常)。 如果有一种方法可以手动将底层通信流提供给SmtpClient,那将会很棒,但我找不到办法。 任何人都知道为什么下面的代码不会进行身份validation? 这是我用来尝试与SmtpClient连接但未成功的测试应用程序: ServicePointManager.ServerCertificateValidationCallback = CertificateValidation; // Using Ssl3 rather than Tls […]

C#DateTime从yyyy-MM-ddTHH转换:mm:ss到dd MMM yyyy

如何将“yyyy-MM-ddTHH:mm:ss”转换为“dd MMM yyyy”格式? 对于Instance,我想将2013-04-16 05:30:05转换为2013年4月16日。实现此目的的正确方法是什么?

读取对象属性时忽略NullReferenceException

是否有任何方法可以指示C#忽略一组语句的NullReferenceException (或任何特定的exception)。 当尝试从可能包含许多空对象的反序列化对象中读取属性时,这很有用。 有一个帮助方法来检查null可能是一种方法,但我正在寻找一个接近于’On Error Resume Next’(来自VB)的语句级别的块。 编辑:Try-Catch将跳过关于exception的后续语句 try { stmt 1;// NullReferenceException here, will jump to catch – skipping stmt2 and stmt 3 stmt 2; stmt 3; } catch (NullReferenceException) { } 例如:我将XML消息反序列化为对象,然后尝试访问类似的属性 Message.instance[0].prop1.prop2.ID 现在prop2可能是一个空对象(因为它不存在于XML Message中 – XSD中的可选元素)。 现在我需要在访问叶元素之前检查层次结构中每个元素的null。 即在访问“ID”之前,我要检查实例[0],prop1,prop2是否为空。 是否有更好的方法可以避免对层次结构中的每个元素进行空值检查?

正则表达式匹配多个组

我有一个带有正则表达式的字符串的示例,我正在尝试匹配: 正则表达式: ^\d{3}( [0-9a-fA-F]{2}){3} 要匹配的字符串: 010 00 00 00 我的问题是这个 – 正则表达式匹配并捕获1组 – 字符串末尾的最后一个00 。 但是,我希望它能在最后匹配所有三个00组。 为什么这不起作用? 当然,括号应该表示它们都是平等匹配的吗? 我知道我可以分别输入三个组,但这只是一个更长的字符串的简短提取,所以这将是一个痛苦。 我希望这会提供更优雅的解决方案,但似乎我的理解有点缺乏! 谢谢!

system.outofmemoryexception填充DataAdapter时?

我必须从DB中提取150K记录。 我正在使用da.Fill(ds,”Query”)及其抛出system.outofmemoryexception 。 Dim daGrid As New SqlDataAdapter(sqlcmd_q) daGrid.Fill(dsGrid, “Query”) daGrid.Dispose() 我只需要这个数据表。 我不能使用XML。 因为我需要将它分配给MSChartControl来显示ScotterPlot。 有什么建议?

将数据库列映射到常量值,而不需要实体类中的属性

是否可以将数据库列映射到常量值而无需实体类中的属性? 这基本上是一种解决方法,用于在数据库中该列上缺少缺省值,并结合NOT NULL约束。 数据库是外部的,无法更改,但我不需要该表中的所有列,因此不希望在我的实体类中具有相应的属性。 我问这个Hibernate JIRA问题中描述的基本相同。

如何动态更改web.config中的连接字符串

我在web.config中定义连接字符串 如何在c#中动态更改连接字符串

在具有基类的多个浏览器中运行Selenium测试

假设我有代码: namespace SeleniumTests { [TestFixture(typeof(FirefoxDriver))] [TestFixture(typeof(InternetExplorerDriver))] public class TestWithMultipleBrowsers where TWebDriver : IWebDriver, new() { private IWebDriver driver; [SetUp] public void CreateDriver () { this.driver = new TWebDriver(); } [Test] public void GoogleTest() { driver.Navigate().GoToUrl(“http://www.google.com/”); IWebElement query = driver.FindElement(By.Name(“q”)); query.SendKeys(“Bread” + Keys.Enter); Thread.Sleep(2000); Assert.AreEqual(“bread – Google Search”, driver.Title); driver.Quit(); } } } 我想阻止 [SetUp] public […]

更改ContentControl.Content时开始动画

我正在尝试在Button或ContentControl等内容控件更改其内容时触发动画。 我最初的想法是这样做: 但是我不知道更改/更新ContentPresenter时会触发哪个事件。 有任何想法吗?