小编No1*_*ver的帖子

String.Starts不使用亚洲语言?

我注意到这个奇怪的问题.看看这个越南语(根据谷歌翻译)字符串:

string line = "Mìng-d??ng-ng??";
string sub = "Mìng-d??ng-ng?";
line.Length
15
sub.Length
14
line.StartsWith(sub)
false
Run Code Online (Sandbox Code Playgroud)

在我看来,这似乎是一个错误的结果.所以,我实现了我的自定义StartWith函数,它比较字符串char-by-char.

public bool CustomStartWith(string parent, string child)
{
    for (int i = 0; i < child.Length; i++)
    {
        if (parent[i] != child[i])
            return false;
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

而我猜测,运行此功能的结果

CustomStartWith("Mìng-d??ng-ng??", "Mìng-d??ng-ng?")
true
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?!这怎么可能?

c# string

21
推荐指数
2
解决办法
1348
查看次数

匿名委托作为函数参数

我试图传递参数,这是匿名委托(没有输入参数,没有返回值),以实现功能.

像这样的东西:

private function DoSomething(delegate cmd)
{
     cmd();
}
Run Code Online (Sandbox Code Playgroud)

然后,我想用这个函数以这种方式调用函数:

DoSomething(delegate
{
     Console.WriteLine("Hooah!");
});
Run Code Online (Sandbox Code Playgroud)

我想要这种特定的方式,因为它很容易使用写作风格.

可能?

c# anonymous-delegates

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

Angular UI - 以编程方式设置活动选项卡

我在这个代码中使用AngularUI:

<uib-tabset type="pills">
    <uib-tab heading="Tab 1">Tab 1 content</uib-tab>
    <uib-tab heading="Tab 2">Tab 2 content</uib-tab>
</uib-tabset>
Run Code Online (Sandbox Code Playgroud)

我想以编程方式更改角度控制器代码中的当前活动标记.例如,选择选项卡"2"作为活动.

怎么做到这一点?

angularjs angular-ui angular-ui-bootstrap angular-ui-tabset

10
推荐指数
2
解决办法
2万
查看次数

设置blob的到期限制

我正在使用Azure-Storage来存储缓存机制等信息.所以,对于给定的输入我是第一次做这个工作,之后我会将结果保存到缓存中以供进一步使用.当我需要用相同的输入解决问题时,我会直接从存储中获得已经准备好的解决方案.这一切都已实施.

我正在尝试在缓存中添加文件的到期限制.每个结果将存储最多30天.之后,它们将被自动删除.

天真的解决方案是实现一个后台工作程序,它将每天运行一次,并将根据其创建时间运行所有文件并删除它们.

有更好的解决方案吗?

azure azure-storage azure-storage-blobs

9
推荐指数
2
解决办法
4702
查看次数

读取 Filter 中的 Response.Body 流

我编写了在服务器方法调用后运行的过滤器,并将其内容打印到控制台。代码是用ASP.NET core v2.1编写的:

public class MyCustomFilter : ActionFilterAttribute
{
    public override void OnResultExecuted(ResultExecutedContext context)
    {

        // ERROR on the next line!
        using (StreamReader sr = new StreamReader(context.HttpContext.Response.Body))
        {
            Console.WriteLine(sr.ReadToEnd());
        }

        base.OnResultExecuted(context);
    }
}
Run Code Online (Sandbox Code Playgroud)

结果-异常:

流不可读。

进一步的调查使我发现流 ( context.HttpContext.Response) 具有这些值:

  1. 可以读取 = false
  2. 可以寻找=假

这可以解释为什么它无法读取正文......

怎么解决?

c# asp.net asp.net-web-api asp.net-core

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

相当于Thread.Abort的dotnet核心

背景

我有一个Service抽象。每个服务都有它自己的WorkItem。WorkItem能够以一些数据开始。该服务限制了的执行时间WorkItem。假设一个工作项最多可能需要60秒。在此之后,Service应该杀死它。

这段代码是从Standard .NET Framework迁移而来的,我创建了一个Thread运行该Start(model)方法的对象。然后代码是这样的:

Thread t = new Thread(workItem.Start, model);
t.start();
if (!t.Join(TimeSpan.FromSeconds(60)))
    t.Abort();
Run Code Online (Sandbox Code Playgroud)

Thread.Abort被注入了正在运行的线程,从而导致它立即停止异常。

现在,当您调用以下消息时,我将代码移到了dotnet core-您可能知道。Thread.Abort()

System.PlatformNotSupportedException: Thread abort is not supported on this platform.
   at System.Threading.Thread.Abort()
   at ...
Run Code Online (Sandbox Code Playgroud)

目标

我想将的执行时间限制WorkItem为特定的时间。请注意,如果您像这样运行代码行,则此限制也应起作用:

Thread.sleep(61000); // 61 seconds. should be stop after 60 seconds.
Run Code Online (Sandbox Code Playgroud)

进展

在dotnet核心世界中,似乎要使用Task相关的解决方案。因此,我想使用CancellationToken。但是,似乎无法观看“意外事件”并立即停止。我看到的示例使用while (!canceled)循环,不能停止长时间的操作(例如Thread.Sleep(1000000)

怎么做对?

更新资料

我编写了以下示例代码:

public …
Run Code Online (Sandbox Code Playgroud)

c# multithreading .net-core

9
推荐指数
4
解决办法
4551
查看次数

SignalR函数返回值

我创建了一个SignalR集线器,它包含以下集线器功能:

public bool GetStatus()
{
    return true;
}
Run Code Online (Sandbox Code Playgroud)

我想从我的JS代码中调用此函数并获取此调用的请求.像这样的东西:

var result = hub.server.getStatus();
if (result)
    alert('success');
Run Code Online (Sandbox Code Playgroud)

这可能没有返回bool的任务吗?

谢谢.

c# signalr signalr-hub signalr.client

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

写入一个或多个点的频率高于为指标配置的最大采样周期

背景

我有一个网站部署在多台机器上。我想创建一个 Google 自定义指标来指定它的吞吐量 - 服务了多少个呼叫。

我们的想法是创建一个自定义指标,收集有关已服务请求的信息,并每分钟 1 次将信息更新为自定义指标。因此,对于每台机器,此代码每分钟最多可以发生 1 次。但这个过程正在我的集群中的每台机器上发生。

在本地运行代码可以完美运行。

问题

我收到此错误: Grpc.Core.RpcException: Status(StatusCode=InvalidArgument, Detail="无法写入一个或多个 TimeSeries:一个或多个点的写入频率比为指标配置的最大采样周期更频繁。{指标:custom.googleapis.com/web/2xx,时间戳:{最年轻的现有:'2019/09/28-23:58:59.000',新:'2019/09/28-23:59:02.000'}}: timeSeries[0]; 写入一个或多个点的频率高于为指标配置的最大采样周期。{指标:custom.googleapis.com/web/4xx,时间戳:{最年轻的现有:'2019/09/28-23 :58:59.000',新:'2019/09/28-23:59:02.000'}}:timeSeries 1 ")

然后,我在自定义指标限制中读到:

Rate at which data can be written to a single time series = one point per minute
Run Code Online (Sandbox Code Playgroud)

我认为 Google Cloud Custom Metric 将为我处理并发问题。

根据它们的限制,我实现实时监控的唯一选择是放置另一个应用程序,该应用程序将从所有计算机收集信息并将其更新为自定义指标。在我看来,对于实际用例来说,这似乎需要太多工作。

我缺少什么?

google-cloud-platform google-cloud-stackdriver

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

私有 VPC 网络上的 Google Cloud Build

我有一个 Google Cloud Build 触发器可以在 Google Cloud 上构建我的图像。我还有 VPC 网络,它托管一些在构建图像时应该可以访问的资源。

在构建映像时,我的 docker 脚本需要访问 Web 服务器。GCP Cloud 构建网络似乎不是我的私有 VPC 网络。因此,构建时所需的资源无法访问该脚本。

这是否可以在 VPC 网络中运行构建?如果是,如何?

google-cloud-platform google-cloud-networking google-cloud-build

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

Web-Api令牌认证 - 文档

我只是创建一个web-api项目(基于带C#的ASP.NET).VS正在使用它的演示应用程序创建这个空应用程序,以展示他的功能.这个演示一切正常.

作为演示代码的一部分,您将在"App_Start/Startup.Auth.cs"文件中使用此块:

    // Configure the application for OAuth based flow
    PublicClientId = "self";
    OAuthOptions = new OAuthAuthorizationServerOptions
    {
        TokenEndpointPath = new PathString("/Token"),
        Provider = new ApplicationOAuthProvider(PublicClientId),
        AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"),
        AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
        AllowInsecureHttp = true
    };

    // Enable the application to use bearer tokens to authenticate users
    app.UseOAuthBearerTokens(OAuthOptions);
Run Code Online (Sandbox Code Playgroud)

好.现在,让我们假设身份验证机制运行良好.我想向WebAPI添加关于此"/ Token"页面的文档.但是,由于此页面是由代码创建的,因此WebAPI文档机制无法将其识别为文档的一部分.那么,我的用户应该如何知道如何登录我的应用程序?

我可以做些什么来在我的自动生成的API文档中添加这个"/ Token"页面?

谢谢.

c# asp.net asp.net-web-api

7
推荐指数
0
解决办法
598
查看次数