Tag: api

为Web Api版本控制自定义MapHttpAttributeRoutes

我正在实现Web API版本控制中的Web API版本控制 。 我的控制器位于2个独立的命名空间中,我使用自定义的SelectController方法根据查询参数选择要使用的版本。 例如 http://myapi/api/values?version=1.0 这一切都很好,但控制器中的某些操作使用Route属性 [Route(“api/values/getNames”)] public HttpResponseMessage Get() { … } 默认使用哪些映射到正确的控制器 config.MapHttpAttributeRoutes(); 在WebApiConfig.cs中 如果我有多个版本的API具有相同的路由,这将不起作用。 我是否能够为config.MapHttpAttributeRoutes()提供自定义实现,以便我可以选择要使用的API的正确版本,或者有更好的方法吗?

将键盘宏命令发送到游戏Windows

我想为游戏做一个宏程序。 但是仅向游戏应用程序(游戏窗口)发送密钥存在问题。 我正在使用keybd_event API将密钥发送到游戏窗口。 但我只想在我的宏程序运行时将密钥发送到游戏窗口,而不是发送到资源管理器或任何打开的窗口。 当我改变窗户时,它仍然发送密钥。 我尝试使用Interaction.App与Visual Basic.dll引用。 但Interaction.App只关注游戏窗口。 我找不到任何关于我的问题。 谁能帮我? 感谢名单

如何测试.net程序集之间API的向后兼容性

我有一个提供API的程序集,并被其他程序集使用。 我需要validation较新版本的API dll是否仍然与使用旧版API的旧程序集兼容。 我发现了几个问同样的问题,但没有解决问题的答案: 用于validation公共API的兼容性的工具 用于C#/ .NET API的向后兼容性的工具 建议的工具只能比较两个程序集,并说明API中是否存在可能的重大更改,但如果最新的API确实破坏了使用它的旧程序集,则不会。 我想找一个工具或编写一个能够检查每个旧dll是否可以使用我的新API dll的测试。 至于API的变化,我更有可能只扩展它,但即使它仍然可以破坏旧程序集中的代码。 可以在此处找到一些此类更改的示例: .NET中API破坏性更改的明确指南 .NET:关于AssemblyVersion,什么定义了二进制兼容性? 现在,我看到的唯一解决方案是使用最新的API编译旧程序集的源代码,但我想只使用程序集并将它们作为unit testing的一部分添加。 有什么更好的办法可以解决这个问题吗? 编辑: 我正在寻找一种能够自动validation.net程序集之间向后兼容性的过程的工具。 (命令行或者也有api)

英语词典api

是否有公共API可以让我查找单词的定义? 我一直在寻找这个,但它正在与字典数据结构混淆。 我正计划在ac#app中使用它。 谢谢

为什么API会返回’void’?

在编写API或可重用对象时,是否存在任何技术原因导致返回’void’的所有方法调用不应仅返回’this’(*在C ++中为此)? 例如,使用字符串类,我们可以做这样的事情: string input= …; string.Join(input.TrimStart().TrimEnd().Split(“|”), “-“); 但我们不能这样做: string.Join(input.TrimStart().TrimEnd().Split(“|”).Reverse(), “-“); ..beause Array.Reverse()返回void。 还有许多其他示例,其中API具有许多返回空白的操作,因此代码最终看起来像: api.Method1(); api.Method2(); api.Method3(); ..但完全有可能写: api.Method1().Method2().Method3() ..如果API设计师允许这样做。 遵循这条路线有技术原因吗? 或者它只是一种风格的东西,表示可变性/新对象? (x-ref 关于返回无效的文体问题 ) 结语 我接受了Luvieere的答案,因为我认为这最能代表意图/设计,但似乎有一些流行的API示例与此不同: 在C ++中cout << setprecision(..) << number << setwidth(..) << othernumber; 似乎改变了cout对象,以便修改插入的下一个数据。 在.NET中, Stack.Pop()和Queue.Dequeue()都返回一个项目,但也改变了集合。 ChrisW和其他人的道具,详细了解实际的性能成本。

如何使用SVN和.NET以编程方式进行文件版本控制?

我们有一个报告生成器。 每日,它将其数据写入excel文件。 出于版本控制和文件数据安全的原因,我们需要更改此文件,并将更改提交到存储库。 你推荐任何你使用过的.net SVN API吗?

C#中的开源video手势识别库

我需要一个开源video手势识别.NET库/ API(在C#中)。 我们有一个网络摄像头……我们移动一只手,它会导致一些事件…… 所以我需要动态检测导航lib / api … 我在哪里可以找到这样的图书馆?

asp.net mvc web api使用OData Patch进行部分更新

我正在使用HttpPatch来部分更新对象。 为了实现这一点,我使用OData的Delta和Patch方法(这里提到: 目前推荐的使用Web API执行部分更新的方法是什么? )。 一切似乎工作正常,但注意到映射器区分大小写; 当传递以下对象时,属性将获得更新的值: { “Title” : “New title goes here”, “ShortDescription” : “New text goes here” } 但是当我传递具有较低或驼峰式属性的相同对象时,Patch不起作用 – 新值不会通过,因此看起来反序列化和属性映射存在问题,即:“shortDescription”到“ShortDescription” ”。 是否有使用Patch忽略区分大小写的配置部分? 供参考: 在输出中,我使用以下格式化程序的camel-case属性(遵循REST最佳实践): //formatting JsonSerializerSettings jss = new JsonSerializerSettings(); jss.ContractResolver = new CamelCasePropertyNamesContractResolver(); config.Formatters.JsonFormatter.SerializerSettings = jss; //sample output { “title” : “First”, “shortDescription” : “First post!” } 然而,我的模型类遵循C#/ .NET格式约定: public […]

Etsy oauth认证c#RestSharp

我正在尝试在他们的文档中给出样本授权请求(或任何需要身份validation的Etsy的api)。 我得到的响应是“oauth_problem = token_rejected”。 我使用了这个SO答案以及benSharper链接到的OAuth基础 。 我看过这个 ,以及其他人。 其中一个使用https://sandbox.https://openapi.etsy.com/v2 ,当我尝试这个时,exception是“底层连接已关闭:无法建立SSL / TLS安全通道的信任关系。 “ 我部署到我的服务器(这是https),仍然是相同的响应。 似乎无法让它发挥作用。 我错过了什么? 这是我的代码: public class AuthorizedRequestHelper { string baseUrl = “https://openapi.etsy.com/v2”; string relativePath = “/oauth/scopes”; string oauth_consumer_key = “xxx”; string consumerSecret = “xxx”; string oauth_token = “xxx”; string oauth_token_secret = “xxx”; public void test() { var restClient = new RestClient(baseUrl); OAuthBase […]

通过Office API将多个Word文档另存为HTML

我有大量需要解析的Word文档。 由于它们都是从同一个模板创建的,我认为最好的方法是将它们保存为HTML文件并解析HTML本身。 虽然将单个Word文档保存为HTML非常容易,但我还没有找到一种从Word内部执行批量过程的方法。 因此,我试图找到一种方法来利用Microsoft Office / Word API来实现这一目标。 如何使用Word API将许多Word文档另存为HTML? 提前致谢。 更新:更多细节…… 一些文档扩展名为.doc ,而其他文档扩展名为.docx 。 我希望这不是问题,但如果是,我只需将它们全部转换为.docx ,希望使用API​​或DocX 。 说到DocX,我在作者的博客上看到,可以使用以下代码将.docx文件保存为HTML: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Word = Microsoft.Office.Interop.Word; using Microsoft.Office.Interop.Word; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { // Convert Input.docx into Output.doc Convert(@”C:\users\cathal\Desktop\Input.docx”, @”c:\users\cathal\Desktop\Output.doc”, WdSaveFormat.wdFormatDocument); /* * Convert […]