草庐IT

PERFORM_API_CALL

全部标签

c# - 在方法名称末尾包含介词是否符合或有损于正常的 C# API 设计?

我知道这听起来像是一个主观的回答,但我会尽量使问题尽可能客观,因为对问题的客观回答将是最有帮助的。我最近有一位代码审查员指出我有在方法末尾添加介词的习惯。这是我最近编写的一个方法,作为Point类的扩展方法:varrectangle=newRectangle(0,0,2,2);varpoint=newPoint(3,1);varresult=point.DistanceTo(rectangle);我的代码审阅者提到方法应该是point.Distance(rectangle)。我一直认为这是主观的和风格问题。但是,我注意到更多.NETAPI设计朝着这个方向发展。例如,使用NUnit的Fl

c# - 用户 (IPrincipal) 在使用 Web Api 2.1 和 Owin 的 ApiController 构造函数上不可用

我将WebApi2.1与Asp.NetIdentity2一起使用。我试图在我的ApiController的构造函数上获取经过身份验证的用户(我正在使用AutoFac注入(inject)我的依赖项),但是当构造函数是打电话。我正在尝试获取用户,以便为任何数据库写入操作生成审计信息。我正在做的一些事情可以帮助诊断:我正在使用仅app.UseOAuthBearerTokens作为Asp.NetIdentity2的身份验证。这意味着我删除了app.UseCookieAuthentication(newCookieAuthenticationOptions())当您使用Asp.NetIdenti

c# - Entity Framework 核心 : Update relation with Id only without extra call

我正在尝试弄清楚如何处理thisdoc:中描述的“单一导航属性案例”假设我们有2个模型。classSchool{publicICollectionChildrens{get;set;}...}和classChild{publicintId{get;set;}...}因此它是按照约定创建的多对一关系,Child中没有显式外键。所以问题是如果我们有Child实例并且知道School.Id有没有办法更新这个关系而不需要额外调用数据库来获取School实例。 最佳答案 SothequestionisifwehaveChildinstance

c# - DelegatingHandler 应该如何进行异步调用(ASP.NET MVC Web API)?

我很乐意在调用内部处理程序的SendAsync()之前执行同步工作,并在内部处理程序通过完成完成后执行同步工作。例如:protectedoverrideTaskSendAsync(HttpRequestMessagerequest,CancellationTokencancellationToken){//dosomesyncworkbeforeinnerhandlerherevarsendTask=base.SendAsync(request,cancellationToken);returnsendTask.ContinueWith(task=>{//dosomesyncworka

c# - Web 部署 API - 部署 .NET 4.5 应用程序

我们正在使用WebDeploy3的(几乎完全未记录的)“公共(public)API”来创建我们网站的.zip包,然后将其同步到服务器:DeploymentBaseOptionsdestinationOptions=newDeploymentBaseOptions(){UserName=//username,Password=//password,ComputerName=//aserver};using(vardeploymentObject=DeploymentManager.CreateObject(DeploymentWellKnownProvider.Package,"C:/M

c# - MVC 和 Web API Controller 的简单注入(inject)器初始化

我有一个WebAPIController,其中包含一些资源DI。出于以后的需要,我添加了一个MVCController,现在我也需要在那里DI的相同资源。这是我的原始配置:[assembly:WebActivator.PostApplicationStartMethod(typeof(CineplexSearch.App_Start.SimpleInjectorWebApiInitializer),"Initialize")]namespaceCineplexSearch.App_Start{usingSystem.Web.Http;usingSimpleInjector;usingS

c# - 基于 Accept header 的 ASP.NET Core Web API 操作选择

我想根据请求的接受header为同一功能(实体列表)返回两个不同格式的响应,它是针对“json”和“html”请求。asp.netcore是否支持根据请求中的AcceptHeader为同一路由选择不同的Action? 最佳答案 我深入研究了.net核心源代码并寻找其他具有类似行为的属性,例如Microsoft.AspNetCore.Mvc.HttpGet或Microsoft.AspNetCore.Mvc.ProducesAttribute。这两个属性都实现了一个Microsoft.AspNetCore.Mvc.ActionConst

c# - 将 .NET P/Invoke 代码组织到 Win32 API 的最佳实践

我正在.NET中重构一个庞大而复杂的代码库,它大量使用P/InvoketoWin32API。项目的结构不是最好的,我发现到处都是DllImport语句,经常重复相同的功能,并且还以多种方式声明:导入指令和方法有时声明为公共(public)的,有时声明为私有(private)的,有时声明为静态的,有时声明为实例方法。我担心重构可能会产生意想不到的后果,但这可能是不可避免的。是否有我可以遵循的记录在案的最佳做法可以帮助我解决问题?我坚持要组织一个静态/共享的Win32P/InvokeAPI类,在一个文件中列出所有这些方法和关联的常量...编辑user32DLL有超过70个导入.(代码库由2

c# - ASP.NET Web API IExceptionLogger 不捕获异常

我正在尝试设置一个全局异常处理程序,如下所述:WebAPIGlobalErrorHandling.我已经设置了一个在Controller构造函数中抛出异常的情况。但我的异常没有被记录下来。相反,WebApi只是将异常和完整堆栈跟踪作为JSON消息返回给调用客户端。我不知道这是否重要,但我的Controller操作正在使用async/await,如下所示:[HttpGet,Route("GetLocationNames")]publicasyncTask>Get(){returnawaitadapter.GetLocationNames();}我有以下实现:usinglog4net;us

c# - Expression.Call 在简单的 lambda 表达式中。可能吗?

我需要生成一个像这样的lambda表达式item=>item.Id>5&&item.Name.StartsWith("Dish")好的,item.Id>5很简单varitem=Expression.Parameter(typeof(Item),"item");varpropId=Expression.Property(item,"Id");varvalueId=Expression.Constant(5);varidMoreThanFive=Expression.GreaterThan(propId,valueId);但第二部分对我来说更复杂......varpropName=Expr