在ASP.NET Core 2.1应用中,我正在使用进行REST请求HttpClient。我正在使用DelegatingHandlers定义一些常见的行为。我在这里注册:
private static void AddRestServiceDataClient<TTypedHttpClient, TTypedHttpClientImpl>(this IServiceCollection services)
where TTypedHttpClient : class
where TTypedHttpClientImpl : RestServiceDataClient, TTypedHttpClient
{
var httpClientBuilder = services
.AddHttpClient<TTypedHttpClient, TTypedHttpClientImpl>()
.AddHttpMessageHandler<CachingHttpDelegatingHandler>()
.AddHttpMessageHandler<ExceptionHttpDelegatingHandler>()
.AddHttpMessageHandler<LoggingHttpDelegatingHandler>();
}
...
// EDIT: You should always register DelegatingHandlers as TRANSIENT (read answer for more).
services.AddScoped<ExceptionHttpDelegatingHandler>();
services.AddScoped<CachingHttpDelegatingHandler>();
services.AddScoped<LoggingHttpDelegatingHandler>();
Run Code Online (Sandbox Code Playgroud)
我将DelegatingHandlers 注册为Scoped,但是在两个不同的范围(请求)中,我得到相同的DelegatingHandler。我的意思是,的构造函数DelegationgHandler仅被调用一次,并且在更多请求(例如单例)中使用同一实例。其他所有事情都符合预期-其他服务,TypedHttpClients和HttpClient的生命周期都可以。
我在构造函数中按断点测试了所有内容,并且在每个实例中都测试了Guid,以便区分实例。
当我将DelegatingHandlers 注册为Transient时,它没有任何区别。
TL; DR DelegatingHandler像单例一样被解析,即使它们已注册为作用域。这使我沉迷于服务型生活方式。
.net dependency-injection dotnet-httpclient .net-core asp.net-core
当通过换行在另一个单元格中拉伸行时,如何在单元格表中使div高度为100%。
在这个小提琴中,我想在第二个单元格中使用div来填充整个单元格(高度的100%)。
td {
border: 1px solid red;
width: 50%;
background-color: yellow;
}
td div {
background-color: green;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}Run Code Online (Sandbox Code Playgroud)
<table>
<tr>
<td>
<div>
abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde abcde …Run Code Online (Sandbox Code Playgroud)我有一个用 AOT 编译的 Angular 项目。我希望能够注册ClassProvider根据配置动态解析的内容。我使用的简化代码是这样的:
const isMock = Math.random() > 0.5;
@NgModule({
// ...
providers: [
{ provide: MyServiceBase, useClass: (isMock) ? MyServiceMock : MyService },
],
bootstrap: [AppComponent]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)
问题是当我用 AOT 编译它时,我总是得到相同的服务。我希望在点击 F5 时获得不同的服务(因为randomness在第一行)。在没有 AOT 的情况下编译时,它的行为符合我的预期。
这是 github 上的整个代码示例:https : //github.com/vdolek/angular-test/tree/aot-regulation-provider-problem。它的行为与ng serve和不同ng serve --aot。
我怎样才能做到这一点?我知道我可以使用FactoryProvider,但是我必须复制服务依赖项(工厂函数的参数和 deps 上的属性FactoryProvider)。
也许我是盲人,但我无法找到如何更改Grid.MVC生成的整个表的css类attributte .
默认的css类设置:
<table class="table table-striped grid-table">
Run Code Online (Sandbox Code Playgroud)
我想编辑它.我现在在javasript有一个解决方法.它可以工作,但在服务器端必须有一些更好的解决方案.
我有一个字符串,其中的值列表以分号分隔.我需要一些最佳方法来删除重复项.我有以下正则表达式:
\b(\w+);(?=.*\b\1;?)
Run Code Online (Sandbox Code Playgroud)
这有效,但是当有空格时它会失败.例如,aaa bbb;aaa bbb;aaa bbb创建aaa aaa aaa bbb而不是aaa bbb.
.net ×2
.net-core ×1
angular ×1
angular2-aot ×1
asp.net ×1
asp.net-core ×1
asp.net-mvc ×1
c# ×1
css ×1
decorator ×1
grid ×1
html ×1
html-table ×1
java ×1
javascript ×1
regex ×1
typescript ×1