小编Joe*_*oel的帖子

如何将自定义样式添加到 3rd 方组件?

为我通过 下载的 3rd 方组件自定义样式的推荐方法是什么npm

例如组件ng2-tag-input。我运行了一个 webpack 构建,它将所有 3rd 方 js 文件捆绑到一个 vendor.js 中,并将所有 3rd 方 css 捆绑到一个vendor.css.

由于这是在构建时生成的,因此我不想对其进行更改vendor.css或提交。

假设我想将自己的样式添加到 中ng2-tag-input,如何最好地做到这一点?我应该自己覆盖它的样式site.css还是有其他方法?

ng2-tag-input angular

5
推荐指数
1
解决办法
4288
查看次数

HttpClient解码编码的网址?

我试图找出在HttpClient处理URL方面的一些不一致之处。

我有以下测试代码:

public async Task TestHttpClient()
{
    var baseUrl = "https://api.twitter.com/1.1/search/tweets.json";
    //var query = "(cafe OR boulangerie)";
    var query = "(café OR boulangerie)";

    var url = baseUrl + $"?q={Uri.EscapeDataString(query)}";

    var httpClient = new HttpClient();
    var response = await httpClient.GetAsync(url);

    await response.Content.ReadAsStringAsync();
}
Run Code Online (Sandbox Code Playgroud)

该代码实际上将无法工作,因为我们需要身份验证和其他内容才能进行Twitter搜索。但这证明了我的问题。

该变量url将具有以下值: https://api.twitter.com/1.1/search/tweets.json?q=%28caf%C3%A9%20OR%20boulangerie%29

但是,查看Fiddler中的请求,我可以看到实际发送的是: https://api.twitter.com/1.1/search/tweets.json?q=(caf%C3%A9%20OR%20boulangerie)

因此突然之间,括号不再被编码。这对我来说很重要,因为我使用编码的查询字符串来计算用于对Twitter进行身份验证的签名。因此,我的签名将带有百分比编码的括号,而请求不会,因此Twitter引发错误并告诉我身份验证失败。

有趣的是,如果我使用常规e而不是常规发送查询,é则括号将编码在请求中!像这样:https://api.twitter.com/1.1/search/tweets.json?q=%28cafe%20OR%20boulangerie%29

我想这是某种错误HttpClient吗?我可以以某种方式解决此问题吗?

c# encoding url-encoding dotnet-httpclient .net-core

5
推荐指数
1
解决办法
1258
查看次数

在ASP.NET Core和.NET Core控制台项目中使用相同的`.resx`文件

我已经在ASP.NET Core中实现了本地化:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization

我有一个公共库项目(MyProject.Common),我保留资源文件(因为它由多个ASP.NET核心应用程序使用).

所以我有一个.resx文件MyProject.Common\Resources\Localization\SharedResources.sv.resx:

<?xml version="1.0" encoding="utf-8"?>
<root>
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net .net-core asp.net-core

5
推荐指数
1
解决办法
2266
查看次数

跨选项卡计划访问令牌刷新

为了对我的Angular应用程序中的用户进行身份验证,我使用有效期为X秒的访问令牌,并刷新可用于将身份验证再延长X秒的令牌。

所以流程是这样的:

  • 用户登录。访问令牌和刷新令牌都存储在本地存储中
  • 设置了计时器(比X秒短5%)。
  • 计时器完成后,刷新令牌请求将发送到服务器,并使用结果(新的)访问和刷新令牌更新本地存储。

我的问题是这样的:

  • 如果打开了多个选项卡,将不可避免地遇到同时从多个选项卡触发刷新的情况。服务器将接受第一个请求,但会400 Bad Request - Invalid refresh token为后续请求抛出,因为它认为已使用它们。

有谁知道如何解决这个问题?如何跨选项卡/窗口同步内容?我有两个想法,但似乎都有些牵强:

  • 如果响应为400 Bad Request,则请稍后重试(或检查是否已存在有效的更新令牌)。
  • 尝试通过在选项卡之间发布消息来跨选项卡同步服务器请求。

javascript angular

5
推荐指数
1
解决办法
575
查看次数

Microsoft.AspNetCore.NodeServices:无法启动节点进程

我正在使用Microsoft.AspNetCore.NodeServices 1.1.1我的ASP.Net Core应用程序.一切都工作正常,但现在我在一台新电脑上,我收到以下错误:

System.InvalidOperationException:
Failed to start Node process. To resolve this:.

[1] Ensure that Node.js is installed and can be found in one of the PATH directories.
    Current PATH enviroment variable is: ....
    Make sure the Node executable is in one of those directories, or update your PATH.

[2] See the InnerException for further details of the cause.
Run Code Online (Sandbox Code Playgroud)

我已从此问题中删除了路径变量,但其中列出了安装Node的目录.

node -v在终端给我v6.11.0这样它被添加到路径.

代码中的任何内容都没有改变,因为它上次工作,只有我的电脑.有谁知道什么可能是错的?

asp.net-core

5
推荐指数
1
解决办法
8869
查看次数

截断字符串时意外拆分 unicode 字符

我正在将一些来自第三方的字符串保存到我的数据库 (postgres) 中。有时这些字符串太长,需要截断以适应我表中的列。

在某些随机情况下,我不小心在有 Unicode 字符的地方截断了字符串,这给了我一个无法保存到数据库中的“损坏”字符串。我收到以下错误:Unable to translate Unicode character \uD83D at index XXX to specified code page

我创建了一个最小的示例来向您展示我的意思。这里我有一个包含 Unicode 字符的字符串(“小蓝钻石”U+1F539)。根据我截断的位置,它是否给我一个有效的字符串。

var myString = @"This is a string before an emoji: This is after the emoji.";

var brokenString = myString.Substring(0, 34);
// Gives: "This is a string before an emoji:?"

var test3 = myString.Substring(0, 35);
// Gives: "This is a string before an emoji:"
Run Code Online (Sandbox Code Playgroud)

有没有办法在不意外破坏任何 Unicode 字符的情况下截断字符串?

c# string postgresql unicode

5
推荐指数
2
解决办法
463
查看次数

<a>元素中的svg <text>元素在Chrome中悬停时显示下划线

标题基本概括了所有内容.<text>嵌套在<a>元素中的我的SVG 元素在鼠标悬停时获得下划线,但仅在Chrome中.Firefox或IE中没有下划线.

是否有一些属性我应该设置为删除Chrome中的下划线?

这是我的代码

<a xlink:href="#" class="node">
    <title>Some title</title>
    <circle class="little" r="50" cx="60" cy="360" fill="#0088cc"></circle>
    <text font-size="20px" font-weight="bold" fill="white" text-decoration="none" text-anchor="middle" dominant-baseline="central" x="60" y="360">Some text</text>
</a>
Run Code Online (Sandbox Code Playgroud)

svg google-chrome

4
推荐指数
1
解决办法
2990
查看次数

在knockoutjs 中结合href、click 和data-bind

我正在尝试在等待慢速链接时显示某种加载程序:

<a href="/api/action/that/takes/some/time" data-bind="click: showLoading">
Run Code Online (Sandbox Code Playgroud)
<a href="/api/action/that/takes/some/time" data-bind="click: showLoading">
Run Code Online (Sandbox Code Playgroud)

click似乎忽略实际的链接。有没有办法解决这个问题?

澄清编辑: 我可以做这样的事情,但我更愿意将 url 保留在 href 上,只需将showLoading位添加到那些需要一些时间的链接中

<a href="#" data-bind="click: showLoading.bind($data, '/api/action/that/takes/some/time'">

this.showLoading = function(link) {
    // Display loader while waiting for the redirect
    window.location.href = link;
};
Run Code Online (Sandbox Code Playgroud)

javascript jquery knockout.js

4
推荐指数
1
解决办法
4936
查看次数

了解 PerfView 中的 BLOCKED_TIME

我们怀疑在运行几个 ASP.NET Core API 和几个 .NET Core 控制台的服务器上遇到线程池饥饿。

我在我们的一台服务器上运行了 perfview,因为我们怀疑线程池饥饿有问题。但是,我在分析结果时遇到了一些麻烦。

我跑PerfView /threadTime collect了大约60秒。这是我得到的结果(我选择了一个来查看我们的 ASP.NET Core API 之一):

在此处输入图片说明

查看“按名称”,我们可以看到在BLOCKED_TIME. 如果我双击,则会进入以下视图,我可以在其中展开节点之一以获取以下视图(被覆盖的部分是我们的 API 进程的名称):

在此处输入图片说明

这告诉我什么?我不应该能够看到究竟是什么阻塞?看起来问题是很多线程在短时间内阻塞了每个线程吗?

我们还能从中得出什么其他结论吗?

perfview .net-core asp.net-core

3
推荐指数
1
解决办法
1973
查看次数

使用 IHttpClientFactory 设置每个请求的请求标头

我正在使用类型化客户端IHttpClientFactory。像这样:

// Startup.cs
services.AddHttpClient<MyHttpClient>()

// MyHttpClient.cs
public class MyHttpClient
{
    public MyHttpClient(HttpClient client)
    {
        Client = client;
    }

    public HttpClient Client { get; }
}

// MyService.cs
public class MyService {
    public MyService(MyHttpClient httpClient) {}

    public async Task SendRequestAsync(string uri, string accessToken) {
        _httpClient.Client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
        await _httpClient.Client.GetAsync(uri);
    }
}
Run Code Online (Sandbox Code Playgroud)

我不确定这是如何运作的。请求标头是仅针对此请求设置,还是针对使用 . 的此实例发出的每个后续请求设置httpClient。如何为每个请求设置标头?

c# asp.net-core asp.net-core-2.1 httpclientfactory

2
推荐指数
1
解决办法
4605
查看次数

过滤掉来自Application Insights的信号器请求

Application Insights的大部分遥测配额正被SignalR(和其他SignalR请求)的ping请求用尽.

如何防止报告这些请求?我想保留其他ajax请求,但对SignalR请求应用某种(客户端)过滤器.

我找不到任何提供简单示例的好文档.我知道我可以使用该过滤掉一些请求addTelemetryInitializer,但我不知道要过滤什么?

    appInsights.queue.push(function () {
        appInsights.context.addTelemetryInitializer(function (envelope) {
            // What should I do here to remove /signalr requests?
        });
    });
Run Code Online (Sandbox Code Playgroud)

signalr azure-application-insights

1
推荐指数
1
解决办法
1564
查看次数

属性更改时Angular2更新URL(包含浏览器历史记录)

假设我有一个Component主要细节.我想URL反映细节部分的变化而不重新加载整个Component.

这就是我所拥有的:

home.routing.ts

import { ModuleWithProviders } from "@angular/core";
import { Routes, RouterModule } from "@angular/router";

import { HomeComponent } from "./home.component";
import { ItemListComponent } from "./item-list.component";

const homeRoutes: Routes = [
    {
        path: "home",
        component: HomeComponent,
        children: [
            {
                path: ":categoryId",
                component: HomeComponent
            }
        ]
    },
    {
        path: "home",
        component: HomeComponent
    }
];

export const homeRouting: ModuleWithProviders = RouterModule.forChild(homeRoutes);
Run Code Online (Sandbox Code Playgroud)

home.component.ts

import { Component, OnInit } from "@angular/core";
import { Router, ActivatedRoute, Params } from …
Run Code Online (Sandbox Code Playgroud)

angular2-routing angular2-components angular

1
推荐指数
1
解决办法
4828
查看次数