为什么处置对象在处理后使用它时不会抛出exception?

在被处置对象上调用方法是否合法? 如果是,为什么? 在下面的演示程序中,我有一个一次性类A (它实现了IDisposable接口)。据我所知,如果我将一次性对象传递给using()构造,那么Dispose()方法会在结束括号中自动调用: A a = new A(); using (a) { //… }//<——— a.Dispose() gets called here! //here the object is supposed to be disposed, //and shouldn't be used, as far as I understand. 如果这是正确的,那么请解释这个程序的输出: public class A : IDisposable { int i = 100; public void Dispose() { Console.WriteLine(“Dispose() called”); } public void […]

结构上的扩展方法

你能为结构添加扩展方法吗?

在C#中传递引用类型

class Test { static void Func(StringBuilder myString) { myString.Append (“test”); myString = null; } static void Main() { StringBuilder s1 = new StringBuilder(); Func(s1); Console.WriteLine (s1); } } 输出是“测试”,为什么不是空? 如果通过引用 Func()传递s1,那么为什么myString.Append(“test”)改变它,但是myString = null却没有? 提前致谢。

如何检测Kill Process事件

在C#中使用process.Kill()杀死一个进程,同时在kill应用程序中如何检测这个事件? BTW:Application.ApplicationExit事件尚未被解雇!

HttpWebRequest和HttpWebResponse显示旧数据

更新数据后,当调用Web服务时,它仍然会获取旧数据。 只有在我注销应用程序然后再次登录时才会加载新数据。 protected async override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) { base.OnNavigatedTo(e); parameterValue = this.NavigationContext.QueryString[“parameter”]; Uri UserDetailUrl = new Uri(Constants.WebService.ws_single_user + “?user_id=” + parameterValue); HttpWebRequest UserDetailRequest = (HttpWebRequest)HttpWebRequest.Create(UserDetailUrl); HttpWebResponse UserDetailResponse = (HttpWebResponse)await UserDetailRequest.GetResponseAsync(); StreamReader reader = new StreamReader(UserDetailResponse.GetResponseStream()); string UserDetailString = reader.ReadToEnd(); reader.Close(); XDocument XUserDetailDoc = XDocument.Load(new StringReader(UserDetailString)); if (((XElement)XUserDetailDoc.Element(“main”)).Element(“result”).Value == “success”) { txtEmail.Text = ((XElement)XUserDetailDoc.Element(“main”)).Element(“user”).Element(“email”).Value; txtFirstName.Text […]

帮助开始编程?

学习计算机编程最简单的方法是什么? 任何人都可以建议一些有用的书吗?

Asp.net C的PDF或其他“报告查看器”选项#

我和我目前的项目绑定了。 这是一个工资单应用程序,我正在使用C#开发ASP.net webforms。 我的老板说,这个网站的理想function是点击付款查询日期,打开PDF并显示薪水支票信息。 我已经做了几天的研究,试图找到最好的解决方案。 到目前为止,我没有运气。 我发现了一些不同的东西,比如iTextSharp,但一年的许可证现在太贵了。 我也看过基于php的tcpdf。 我还研究过CrystalReports和Active Reports。 购买许可证也太贵了。 我也研究过XML到PDF解决方案,但我找不到任何确定的东西。 由于我对软件开发的商业世界很陌生,并且没有高级开发人员可以依赖,所以我几乎已经死了。 我知道我们将从基于DOS的应用程序中将薪水下载到CSV文件中,该应用程序执行我们的时钟输入和输出。 然后,我将CSV文件导入SQL Server 2012 Express。 非常感谢您的想法,因为我不知道从哪里开始! 先感谢您!

听5060号港口

我正在开发一个SIP客户端。 为此,我必须侦听端口5060以获取传入的SIP服务器消息。 为此我编了一些东西。 (另外我在程序中使用管理员权限。) WindowsPrincipal pricipal = new WindowsPrincipal(WindowsIdentity.GetCurrent()); bool hasAdministrativeRight = pricipal.IsInRole(WindowsBuiltInRole.Administrator); if (hasAdministrativeRight == true) { TcpListener server; Int32 port = 5060; IPAddress localAddr = IPAddress.Parse(“127.0.0.1”); server = new TcpListener(localAddr, port); server.Start(); Byte[] bytes = new Byte[256]; String data = null; while (true) { Console.Write(“Waiting for a connection… “); TcpClient client = server.AcceptTcpClient(); […]

一次启动多个async / await函数并单独处理它们

如何一次启动多个HttpClient.GetAsync()请求,并在各自的响应返回后立即处理它们? 首先我尝试的是: var response1 = await client.GetAsync(“http://example.com/”); var response2 = await client.GetAsync(“http://stackoverflow.com/”); HandleExample(response1); HandleStackoverflow(response2); 但当然它仍然是连续的。 那么我试着立即启动它们: var task1 = client.GetAsync(“http://example.com/”); var task2 = client.GetAsync(“http://stackoverflow.com/”); HandleExample(await task1); HandleStackoverflow(await task2); 现在任务同时启动 ,这很好,但当然代码仍然需要一个接一个地等待。 我想要的是能够在它进入时立即处理“example.com”响应,并在它进入时立即处理“stackoverflow.com”响应。 我可以将两个任务放在一个数组中,在一个循环中使用Task.WaitAny() ,检查哪一个完成并调用适当的处理程序,但那么……这比常规的旧回调更好吗? 或者这不是async / await的预期用例吗? 如果没有,我将如何使用HttpClient.GetAsync()与回调? 澄清 – 我所追求的行为就像这个伪代码: client.GetAsyncWithCallback(“http://example.com/”, HandleExample); client.GetAsyncWithCallback(“http://stackoverflow.com/”, HandleStackoverflow);

entity framework6中的CreatedOn列

升级到Entity Framework 6后,我们实现了自己的DbExecutionStrategy 。 除了现有的SqlAzureExecutionStrategy,我们的策略还会记录exception。 事实certificate,每15-30分钟entity framework抛出内部SqlException System.Data.SqlClient.SqlException (0x80131904): Invalid column name ‘CreatedOn’. 这是一个内部错误。 如果某些表上存在CreatedOn列,EF似乎会进行一些定期检查。 是否有任何优雅的方法来防止抛出此exception? 这是一个调用堆栈: at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, ref Boolean dataReady) at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData() at System.Data.SqlClient.SqlDataReader.get_MetaData() at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String […]