查询参数路由约束

我刚开始使用ASP.NET Web API 2.1并遇到了限制。 使用属性路由,我可以执行以下操作: [Route(“item/{id:int}”)] public IHttpActionResult GetItem(int id) { … } URL /item/5将路由到此操作,但由于{id:int}中的int约束,URL /item/abc将不会。 我尝试更改我的URL,以便id参数在查询字符串及其约束中,尽管在文档中从未提及或演示过查询参数的路径约束。 [Route(“item?{id:int}”)] public IHttpActionResult GetItem(int id) { … } 如果我现在尝试运行,我在Application_Start的Configure方法调用上出错。 protected void Application_Start() { GlobalConfiguration.Configure(WebApiConfig.Register); } 消息如下。 ArgumentException未被用户代码处理 路径模板不能以’/’或’〜’字符开头,也不能包含’?’ 字符。 有两件事让我烦恼不已。 首先, 记录 MSDN 上路由前缀的部分清楚地表明,在路径模板的开头放置一个~字符是完全可以接受的。 我试过了,它的工作原理记录在案。 其次,如果不是这样,我如何在查询参数上放置路由约束? 考虑以下情况,删除路径约束。 [Route(“item”)] public IHttpActionResult GetItem(int id) { … } URL /item/5将路由到此操作, id设置为5 […]

C#中的线程:如何保持循环索引线程安全?

在下面的示例中,似乎for循环的索引i由每个线程独立修改,导致DoWork_Threaded()的i奇怪值(倍数,甚至大于System.Environment.ProcessorCount-1值DoWork_Threaded() 如何在C#中正确完成multithreading循环? // Prepare all threads Thread[] threads = new Thread[System.Environment.ProcessorCount]; // Start all threads for (int i = 0; i DoWork_Threaded(i)); threads[i].Start(); } // Wait for completion of all threads for (int i = 0; i < System.Environment.ProcessorCount; i++) { threads[i].Join(); }

如何将WPF DataGrid绑定到ObservableCollection

你能给我一个如何将WPF DataGrid绑定到ObservableCollection的技巧吗? 我看过一些post并没有找到直接答案。 这里和任何地方都有错综复杂的问题,但我的问题并不复杂。 我有一个可观察的集合和WPF DataGrid。 它们都在WPF应用程序中,它是双工合同WCF服务的客户端。 这是一个ObservableCollection: private ObservableCollection _myCollection = new ObservableCollection(); public ObservableCollection DownloadsCollection { get { return this._downloadsCollection; } } 这是DataGrid的XAML标记: . . . . . . . . 这是myClass类。 它在WCF服务中实现。 客户端从具有双工合同的WCF服务接收回调中的MyClass实例。 在收到MyClass的每个实例之后,将其放入ObservableCollection中以替换具有相同唯一标识符的前一个实例。 [DataContract] public class MyClass { #region Properties /// /// Downloading unique ID. /// [DataMember] public Guid UniqueId { […]

如何检查我的字符串是否只是数字

我如何检查我的字符串是否只包含数字? 我不记得了。 有什么像isnumeric?

WCF应用程序中的会话变量

我需要在我的WCF应用程序中使用或激发一个非常简单的会话对象。 我只需要在调用开始时存储一些值,我需要访问这些值,同时我会通过一些不同的服务方法。 Asp.NET会话非常适合用于此,因此我需要找出WCF应用程序上可用于存储此类值的内容。 注意:这只是一个每次通话会话,我不需要在从客户端到服务等的不同调用之间保留此会话。

在方法执行代码时显示进度表单的最佳方法是什么?

我有一个WinForm加载方法,需要很长时间来收集一些数据显示给用户。 在执行此方法时,我会显示一个带有大字体的表单,并带有“正在加载”字样。 但是,有时会出现此错误,并且“加载”进度表单不会关闭,然后最终我的整个应用程序将退出: 创建窗口句柄时出错。 在System.Windows.Forms.NativeWindow.CreateHandle(CreateParams cp) 在我在load方法中执行代码时,是否有更好的方法来显示我的进度/加载表单? 这是我的代码: //I launch a thread here so that way the Progress_form will display to the user //while the Load method is still executing code. I can not use .ShowDialog here //or it will block. //Progress_form displays the “Loading” form Thread t = new Thread(new ThreadStart(Progress_form)); t.SetApartmentState(System.Threading.ApartmentState.STA); t.IsBackground = […]

初学者的ASP .NET Ajax示例

嗨,我在ASP.Net上寻找一些关于AJAX的好例子。 请分享一些优秀的链接,如果你认为有一个很好的资源可以帮助我学习 – 请分享。 谢谢。

C#中的扩展ASCII

我想将一些扩展的ascii字符存储到字典中进行查找,但是获得转换几乎没有问题。 我必须存储这些字符的当前方法适用于所有非图形化的ascii字符0x20到0xAF。 目前的方法: private static void LoadAnsiTable() { for (byte i = 0x20; i < 0xFE; i++) { AnsiLookup.Add(i, Convert.ToChar(i).ToString()); } } 但是0xAF和on没有░▒▓┤╡╢等等它只有这些时髦的字母。 查看此表http://www.asciitable.com/以供参考。 如果我手动添加它,这是有效的, AnsiLookup.Add(0xB0, “░”); 我想知道如何在某种集合中捕获这些符号,而无需手动添加它们?

通过Android中的按钮点按加载AR模型

我使用Unity和Vuforia创建了一个基本的AR应用程序并将其导出到Android,因此我可以在那里添加一些活动。 当我在应用程序中使用AR相机扫描图像时,会弹出一个模型。 那里什么新鲜事。 我想要实现的是,当用户点击某个活动中的按钮时,可以说按钮上的文字是“大象”,应用程序中的AR相机打开,扫描图像并加载大象的模型。 我的问题是:这有可能吗? 是否可以根据用户输入加载模型? 如果这是可能的,那么搜索一些关于它的文档的最佳位置是什么? 我已经在互联网上搜索过,但找不到任何具体的内容。 我也是Unity&Vuforia的新手,所以我对这个程序知之甚少。 只有一些教程涵盖的内容。 如果这个问题已被提出/回答,我表示歉意。 提前致谢!

C# – 将json格式的数据解析为嵌套的哈希表

我正在尝试使用C#中的一些json格式化数据,但是,我在确定解决问题的正确方法时遇到了一些问题。 我的问题是json格式的数据将采用未知格式(我知道这听起来很奇怪……请继续阅读)。 基本上,json格式的数据将是一些名称/值对的集合,其中值可能是也可能不是嵌套名称/值对的数组。 为了使事情变得更有趣,名称/值对数组的嵌套可以无限制地继续。 例如:我可能有一些看起来像……的数据 { “1”: { “1.1”: { “1.1.1”: “value1”, “1.1.2”: “value2”, “1.1.3”: “value3” }, “1.2”: “value4”, “1.3”: { “1.3.1”: { “1.3.1.1”: “value5”, “1.3.1.2”: “value6” }, “1.3.1.2”: “value7”, “1.3.1.3”: “value8” } } } 不幸的是,我不知道将要发生多少嵌套,从技术上讲,我不知道在任何给定的消息中将出现什么名称/值对。 C#中是否有任何支持的机制可以让我轻松地将其解析为嵌套的hastables集合? 我想做一些事情(注意这段代码不是100%语法正确,最好通过递归来完成……但是它的想法是完整的)。 Hashtable ht = [deserialize data method](jsonformattedstring); foreach (Hashtable nested in ht) { If (nested.count > 1) { […]