Tag: .net

异步JSON反序列化

我需要做一个RestRequest并获得一些JSON,我不确定我的方法是否真的是异步,因为当我使用这个方法时,我的UI仍然有一点冻结。 public async Task<List> Load() { var tcs = new TaskCompletionSource<List>(); var client = new RestSharp.RestClient(“https://exampleapi.com”); client.Authenticator = OAuth1Authenticator.ForProtectedResource( […]); var request = new RestSharp.RestRequest(“examp.json”, Method.GET); client.ExecuteAsync(request, response => { if (response.StatusCode == HttpStatusCode.OK) { List_ = new List(); List_ = JsonConvert.DeserializeObject<List>(response.Content); tcs.SetResult(List_); } else { MessageBox.Show(“Error”); } }); return await tcs.Task; } 特别为这行代码: List_ […]

C#字符串格式表示小数和小时的小时和分钟

是否有一个简单的字符串格式,它将采用小数表示小时和小时的分数,并将其显示为小时和分钟? 例如:5.5格式化显示5小时30分钟。 我很乐意自己编写代码,但如果可用的话,我更愿意使用现有的function

获取程序集路径C#

我试图知道一个DLL的路径….几个网站说我要使用System.Reflection.Assembly.GetExecutingAssembly()。位置但它返回C:\ Windows \ Microsoft.Net …等路径。 .. \ File.Dll 我想要c:\ MyProyect \ MiWeb \ Bin \ File.Dll 任何帮助?

.net文件用mshtml写

我使用mshtml进行html解析。 (版本7.0.3300.0,C:\ Program Files \ Microsoft.NET \ Primary Interop Assemblies \ Microsoft.mshtml.dll)。 HTMLDocumentClass有一个write方法,所以我使用它,但它引发了与ErrorCode的ComException:-2147352571和消息:类型不匹配。 它是什么原因? 如果不使用HTMLDocumentClass的write方法,他们为什么定义? HTMLDocumentClass getHTMLDocument(string html) { HTMLDocumentClass doc = new HTMLDocumentClass(); doc.write(new object[] { html }); // raises exception doc.close(); return doc; } HTMLDocumentClass getHTMLDocument2(string html) { HTMLDocumentClass doc = new HTMLDocumentClass(); IHTMLDocument2 doc2 = (IHTMLDocument2)doc; doc2.write(new object[] { html }); doc2.close(); […]

为什么一个别名的C#Type不能被另一个访问?

好东西 // ok to alias a List Type using AliasStringList = System.Collections.Generic.List; // and ok to alias a List of Lists like this using AliasListOfStringList1 = System.Collections.Generic.List<System.Collections.Generic.List>; 坏的东西 // However **error** to alias another alias using AliasListOfStringList2 = System.Collections.Generic.List; 产生编译错误 找不到类型或命名空间名称’AliasStringList’(您是否缺少using指令或程序集引用?) 注意:这是using指令而不是using语句 。

编译日期和时间

是否有一些聪明的方法来获取dll构建/编译的日期和时间? 在部署应用程序时,我正在使用程序集版本编号和reflection来检索和显示此信息。 但在某些情况下,知道dll实际编译的时间比自动递增版本号更方便。 由于应用程序的部署方式,我认为dll文件本身的修改日期不可靠。 Dim assemblies = AppDomain.CurrentDomain.GetAssemblies Dim assemblyName As String Dim assemblyVersion As String For Each assembly In assemblies assemblyName = assembly.GetName.Name.ToString assemblyVersion = assembly.GetName.Version.ToString ‘ How to get the date/time of the build?? ‘ … Next 有什么建议?

为什么Char.IsDigit对于无法解析为int的字符返回true?

我经常使用Char.IsDigit检查char是否是一个数字,在LINQ查询中特别方便,以预先检查int.Parse如下所示: “123”.All(Char.IsDigit) 。 但是有些字符是数字,但不能像۵一样解析为int 。 // true bool isDigit = Char.IsDigit(‘۵’); var cultures = CultureInfo.GetCultures(CultureTypes.SpecificCultures); int num; // false bool isIntForAnyCulture = cultures .Any(c => int.TryParse(‘۵’.ToString(), NumberStyles.Any, c, out num)); 这是为什么? 我的int.Parse -precheck是否通过Char.IsDigit错误? 有310个字符是数字: List digitList = Enumerable.Range(0, UInt16.MaxValue) .Select(i => Convert.ToChar(i)) .Where(c => Char.IsDigit(c)) .ToList(); 这是.NET 4(ILSpy)中Char.IsDigit的实现: public static bool IsDigit(char c) { if […]

C#:如何将任意字符串解析为表达式树?

在我正在研究的项目中,我必须使用相当奇怪的数据源。 我可以给它一个“查询”,它会返回一个DataTable。 但查询不是传统的字符串。 它更像是……一组定义我想要的标准的方法调用。 这些方面的东西: var tbl = MySource.GetObject(“TheTable”); tbl.AddFilterRow(new FilterRow(“Column1”, 123, FilterRow.Expression.Equals)); tbl.AddFilterRow(new FilterRow(“Column2”, 456, FilterRow.Expression.LessThan)); var result = tbl.GetDataTable(); 本质上,它支持所有标准的东西(布尔运算符,parantheses,一些函数等),但是编写它的语法对于日常使用来说非常冗长和不舒服。 我想创建一个解析给定表达式的小解析器(如”Column1 = 123 AND Column2 < 456" )并将其转换为上述函数调用。 此外,如果我可以在那里添加参数将是很好的,所以我将受到保护免受注入攻击。 顶部的最后一小块糖将是如果它可以缓存解析结果并在要在另一个对象上重新执行相同的查询时重用它们。 所以我想知道 – 我可以使用任何现有的解决方案,还是我必须推出自己的表达式解析器? 这不是太复杂,但如果我可以节省两三天的编码和一大堆错误来修复,那将是值得的。

防止鼠标离开我的表格

我已经将一些MouseMove和MouseClick事件附加到我的程序中,接下来就是其中之一: 获得“全局”鼠标移动,这样我甚至可以在窗体外读取鼠标位置。 首先防止我的鼠标离开表单。 我的项目是一个游戏,因此像大多数其他游戏一样阻止鼠标离开我的形状真是太棒了(如果你用alt + tab fe切换焦点,你可以把它移出来),并看看其他人的答案。要求全球摩苏运动的问题,他们似乎对我的需求非常混乱。 有一种简单的方法可以阻止我的鼠标走出我的表格边界吗? 或者实际上为了防止它首先超出边界,我希望鼠标留在客户区域内。 有关游戏的其他信息: 游戏是一个短暂的,长达5到30秒的生存游戏(在你活着的30秒后变得太难了)你必须用你的鼠标躲避子弹。 当你将鼠标移出表格然后播放器(连接到鼠标的System.Windows.Forms.Panel )停止移动并立即被子弹击中时,这真的很烦人。 这就是为什么防止鼠标离开该区域会很好。

无论如何在C#中缓存函数/方法

我厌倦了一次又一次地写代码来缓存数据访问层中的对象。 无论如何都要缓存c#函数结果而不需要对函数进行太多更改。 目前是否有任何框架支持此function? 我可以通过编写自定义“c#函数属性”来存档吗? 如果是这样,请给我一些积分来开始实施?