在异步方法中捕获exception

我试图更熟悉异步/等待编程和exception处理。 static void Main(string[] args) { TestAsyncException(); } private static async void TestAsyncException() { try { var result = await Task.Factory.StartNew(() => DoSomething()); //do something with the result } catch (Exception e) { Console.WriteLine(e.Message); } } private static int DoSomething() { throw new Exception(“Exception was thrown!”); } 我期待优雅地处理Exception ,但代码执行停止,我得到 在..中发生了’System.Exception’类型的exception,但未在用户代码中处理。 但是当我继续执行代码时, Exception实际上被捕获(并且消息显示给Console )。 如何在不破坏代码执行的Exception下捕获Exception ?

客户端请求中的SAML令牌后需要签名

我有一个序列化的SOAP请求消息,其中包含一个针对供应商服务的SAML令牌持有者。 我想在C#中创建一个演示程序来产生类似的请求。 为此,我想编写一个创建自己的SAML令牌的客户端。 我已经从自签名证书中成功创建了SAML2令牌,并且我能够使用ChannelFactoryOperations.CreateChannelWithIssuedToken方法(.Net 4.0)将其与请求相关联。 一切都运行良好,但我无法弄清楚在断言后放置签名所需的C#,并使用SAML令牌作为签名KeyIdentifier来签署时间戳。 我甚至不确定我在问什么,但似乎签名本身之后的签名应该是简单的部分。 但是,我在请求中获得SAML的唯一方法是声明它类型为BearerKey。 但BearerKey似乎在断言后省略了签名。 我似乎想要SymmetricKey,但令牌“没有键”。 如何在断言后出现这样的签名元素? 这里URI =“#_ 1”指的是上面的WS-Security时间戳(未示出)。

如何在WinRT中获取像素的RGB值

我想在WinRT应用程序中获取每个像素的RGB值。 我可以访问包含PixelData的字节数组,但我不知道如何使用它,那么如何从字节数组中提取RGB信息? var bd = await Windows.Graphics.Imaging.BitmapDecoder.CreateAsync(stream); var pd = await bd.GetPixelDataAsync(); var tempBuffer = pd.DetachPixelData(); var PixelMatrix = new byte[bd.PixelWidth, bd.PixelHeight]; // how do I get the RGB value for PixelMatrix[0,0]?

从移动设备获取Lan中的所有IP主机

我希望在移动设备(C#.net紧凑框架)上获得包含网络中所有IP地址的列表。 我读了几篇像这样的文章。 问题是,在我的移动设备上我无法ping它们异步因为我只有opennetcf,它不支持它。 ping它同步需要太长时间。 你知道一个图书馆这样做或者你知道吗,我怎么能找到我网络中的所有主机,甚至可能没有ping(这很慢) 端口没关系,我只是想知道,使用了哪些IP … 谢谢你,卡尔

global.asax中的自定义错误

在我的global.asax文件中,我有以下代码: void Application_Error(object sender, EventArgs e) { Exception TheError = Server.GetLastError(); if (TheError is HttpException && ((HttpException)TheError).GetHttpCode() == 404) { Response.Redirect(“~/404.aspx”); } else { Response.Redirect(“~/500.aspx”); } } 当我导航到不存在的页面时,我得到了通用错误页面。 我不希望在web.config出现与自定义错误有关的任何内容,因为我的计划是将代码添加到global.asax文件以记录exception。 有没有办法只使用global.asax文件处理自定义错误? 谢谢。

如何控制DataGridView中绑定到CustomObject的列类型?

我在C#WinForms应用程序中有一个DataGridView,它在运行时是DataBound(通过Form_Load)到自定义对象。 在DataGridView的设计视图中,我没有设置列。 当Form加载时,将根据DataBound所在的Custom对象中的数据自动创建列。 我的问题是如何控制自动创建的列。 例如,如果我希望其中一列是DataGridViewLinkColumn而不是自动创建的DataGridViewTextBoxColumn?

使用接口名称创建类实例的概念是什么?

什么是set变量或对象的概念,或者我不知道当我创建类的实例并将左侧接口名称放入时调用它,我知道我们不能创建类型接口的对象。 当我声明这些类型的对象时,我只需要更多地澄清这个过程命名的内容或.Net所做的细节是什么。 IDataReader oSQLReader = new SqlDataReader(); IDataReader oOLEReader = new OleDbDataReader();

在Linq Expression体中如何使用变量的值而不是对它的引用?

这是我的代码: IQueryable data = dc.TradeCard.Include(“Address”).Include(“Vehicle”); string orderNumber = “ORD_NR_2”; Expression<Func> whereClause = a => a.orderNumber == orderNumber; // Expression<Func> whereClause = a => a.orderNumber == “ORD_NR_2”; List dataAsList = data.Where(whereClause).ToList(); 如果我使用注释行,那么whereClause的值将如下所示: {a =>(a.orderNumber ==“ORD_NR_2”)} 如果我使用另一个定义代替注释行,那么whereClause的值将如下所示: {a =>(a.orderNumber == value(app_Employee.UI.UserFunctions.LejelentettTetelek + c__DisplayClass0).orderNumber)} 这是一个问题,因为我想保存whereClause并在orderNumber变量不存在的其他地方使用它。 那么如何在Linq表达式中使用orderNumber变量的值而不是对它的引用。 我想将“ value(app_Employee.UI.UserFunctions.LejelentettTetelek + c__DisplayClass0).orderNumber ”变成“ ORD_NR_2 ”。

如何设计在Windows Vista / 7上以管理员身份运行的自动启动应用程序?

我需要我的应用程序根据某些事件启动和停止Windows服务。 问题是这个应用程序需要作为一个提升的普通用户(为了停止服务)运行,以及在Windows启动时自动启动。 另外,它需要在具有用户界面的系统托盘中。 我有什么选择? 我想至少有两种可能性: 通过将应用程序放入Startup文件夹或注册表中的.. \ Run键来使应用程序自动启动。 但问题是,这可以在每次Windows启动时弹出UAC提示对话框时完成吗? 开发一个安装为系统运行的Windows服务,在sys托盘中使用单独的GUI应用程序。 但是为了在提升的服务和普通的sys托盘应用程序之间进行通信,我有什么IPC可能性? 有什么想法和建议吗?

如何从数组中删除元素

嗨,我正在研究一些遗留代码 for(int i = results.Count-1; i >= 0; i–) { if(someCondition) { results.Remove(results[i]); } } 对我来说,在迭代循环的同时删除元素似乎是不好的做法,因为你将修改索引。 这是正确的假设吗? 有更好的方法吗? 我想使用LINQ,但我在2.0 Framework中