草庐IT

API管理

全部标签

c# - NuGet - 在单个解决方案中管理和删除多版本包

场景一个包含n个项目的VS解决方案。项目A引用包Yv1,项目B引用包Yv2。现在无法使用解决方案级别的NuGet包管理对话框更新解决方案中所有项目对包Y的所有引用,只有当所有项目都引用相同版本的包Y时才能执行此操作。不是很大我只处理两个项目,但我处理的很多项目由于包管理不善而引用了很多包版本,而它们本应引用相同的版本。在我花一个下午编写控制台应用程序之前。自动更新解决方案的所有package.config文件,以便每个引用的包只通过它的最新版本引用(最新引用,不是最新的,有异常(exception)/警告等)......是否有工具/方法来做这已经?或者我不知道的其他一些方法?

c# - 使用选定文件打开 Windows 资源管理器(或焦点,如果存在)的代码

我的目标是编写一个C#代码来打开一个Windows资源管理器窗口,并选择一个特定的文件。如果这样的窗口已经打开,我想把它放在前面。我尝试了两种选择。首先,我首先显式调用explorer.exe:arg="/select,"+pathToFile;Process.Start("explorer.exe",arg);这会打开并选择一个窗口,但问题是它总是会打开一个新窗口,即使存在一个窗口。所以我尝试了这个:Process.Start(pathToDir);这要么打开一个新窗口,要么聚焦一个旧窗口,但我没有选择文件的选项。我能做什么?我看了explorer'sarguments而且我看不到任

c# - 如何为 Web API 2 异步操作中的异常获取正确的堆栈跟踪?

我有一个简单的APIController方法publicasyncTaskGetByDate(DateTimedate,stringuser=null){thrownewInvalidOperationException();}现在的问题是我在自定义操作过滤器中或仅通过设置IncludeErrorDetailPolicy.Always获得的异常堆栈跟踪是这样的System.InvalidOperationException:Operationisnotvalidduetothecurrentstateoftheobject.atSystem.Web.Http.Filters.Actio

c# - 保护匿名 Web API 请求的方法

我有一个ASP.NETMVC(不是ASP.NETCore)单页应用程序,前端带有angularjs。我的客户端(浏览器)通过ASP.NETWebAPI与服务器对话。现在,Web应用程序位于https但匿名。没有登录/用户身份验证。Web应用程序采用向导形式,用户可以在其中来回切换并添加或更新网页上的输入字段。然后通过WebAPI在服务器上更新表单输入值。我正在寻找一种方法来单独保护我的WebAPI调用,尤其是POST/PUT请求。总之,我想阻止任何用户直接从POSTMAN或Fiddler调用我的WebAPI。WebAPI,尽管是匿名的,但只能从发起请求的浏览器session中调用。我有

c# - .NET XmlWriter 中的正确命名空间管理

我在工作中广泛使用.NETXML技术。我非常喜欢的东西之一是XSLT引擎,更准确地说是它的可扩展性。然而,有一小块一直是烦恼的根源。没什么大不了的,也没什么我们不能忍受的,但它阻止了我们生成我们想要生成的漂亮的XML。我们所做的其中一件事是内联转换节点并将节点从一个XML文档导入到另一个XML文档。可悲的是,当您将节点保存到XmlTextWriter(实际上是XmlWriter.Create(Stream)返回的任何内容)时,命名空间定义都会被抛入其中,而不管它是否必要(先前定义)。您会得到以下xml:对于如何说服.NET对其命名空间定义高效,有没有人有建议?附言。作为一个额外的好处,

c# - 如何在 Entity Framework 4.1 的 Code-First Fluent API 中以编程方式定义关系

我正在玩弄新的EF4.1unicornlove。我正在尝试了解可以使用代码优先来以编程方式定义几个简单POCO之间的关系的不同方式。如何定义以下内容=>1Team有0-manyUser。(并且User在1个Team中)1User有0或1个Foo(但是Foo没有返回给User的属性)1User有1个UserStuff 最佳答案 这里有您正在寻找的示例:publicclassUser{publicintId{get;set;}...publicFooFoo{get;set;}publicTeamTeam{get;set;}publicU

c# - 如何使用 nuget 包资源管理器创建包含发布和调试 dll 的 nuget 包?

我正在使用Nuget包资源管理器创建一些nuget包。我设法做到了这一点,只是在VS中以Release模式构建项目并将dll和pdb文件添加到包中。到目前为止一切顺利,但是当我将包添加到另一个项目并尝试在调试时单步执行代码时,它会跨过它。我知道如果我想在调试时单步执行代码,我需要构建Debugdll和pdb并将其添加到我的包中。我不确定如何将这些添加到我已经创建的包中,该包已经包含名称相同的Releasedll和pdb文件。有什么想法吗? 最佳答案 我的想法是,NuGet打包在很大程度上与约定有关。为不同平台打包相同命名空间和相同名

c# - 自定义 Api 授权忽略 AllowAnonymous

我有一个CustomApiAuthorizeAttribute:publicclassCustomApiAuthorizeAttribute:AuthorizeAttribute{publicoverridevoidOnAuthorization(HttpActionContextactionContext){if(actionContext==null)thrownewArgumentNullException("actionContext");boolskipAuthorization=actionContext.ActionDescriptor.GetCustomAttribut

c# - 在 C# 中使用 Marshal.StructureToPtr 将结构传递给 C++ API

我在我的代码中使用用C++编写的API(用C#编写)。API需要一个参数作为指向结构的指针。该结构由“Int”和Char数组组成:例如unsafepublicstructToBePassed{Int32Num1;Int32Num2;Char[]Data;//orfixedCharData[255];}我不能直接将结构指针传递给API,因为在那种情况下,我会收到“指针无法引用编码(marshal)结构”的错误。代码编译成功,但是当我执行(调试)代码时出现此错误。现在我有两个选择:第一:-通过引用传递结构:我想问一下,当我通过引用传递结构时,需要结构指针的API是否可以接收地址。请注意,A

c# - 具有 Task.Run 性能的 ASP.NET Web API 2 异步操作方法

我正在尝试对几个ASP.NETWebAPI2.0端点进行基准测试(使用Apache基准测试)。其中一个是同步的,一个是异步的。[Route("user/{userId}/feeds")][HttpGet]publicIEnumerableGetNewsFeedItemsForUser(stringuserId){return_newsFeedService.GetNewsFeedItemsForUser(userId);}[Route("user/{userId}/feeds/async")][HttpGet]publicasyncTask>GetNewsFeedItemsForUse