小编cez*_*ann的帖子

从ProcessThreadCollection获取名称的运行线程

在搜索Stack Overflow问题和一些谷歌搜索后,我仍然没有得到它.

我知道您可以使用"Thread.isAlive()"方法检查单个线程是否正在运行,但是我想检查特定的"FooThread"是否仍然在当前进程的所有正在运行的线程之间运行,如果没有,调用启动它的方法.

//somewhere in the code, on another Project/DLL inside solution
private void FooThreadCaller()
{
    Action act = () => fooFunction();
    Thread t = new Thread(new ThreadStart(act));
    t.Name = "FooThread";
    t.Start();
}
//...
Process proc = System.Diagnostics.Process.GetCurrentProcess();
ProcessThreadCollection threads = proc.Threads;
bool ThreadExists = false
foreach (ProcessThread item in threads)
{
    // if item.Name == "FooThread", then ThreadExists = true...
    // so, if !ThreadExists then call FooThreadCaller() and so on.
}
//...
Run Code Online (Sandbox Code Playgroud)

由于ProcessThread类没有"Name"属性(如System.Threading.Thread那样)但只有ID,而我只知道线程名称("FooThread")而不是ID,我怎么能检查"FooThread"正在运行/活着?

先感谢您

.net c# multithreading process

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

在javascript中使用reduce函数查找最小和最大数量的数组

只是好奇心问题.使用reduce函数,我们可以轻松地分别找到数组中最小和最大的数字.就像那样:

var a = [1,2,3,4,5,1,-1,6,7,8,9,10,2,11];
a.reduce(function(prev,cur,index,array){
    return prev > cur ? prev : cur;
}); // returns 11

a.reduce(function(prev,cur,index,array){
    return prev < cur ? prev : cur;
}); // returns -1
Run Code Online (Sandbox Code Playgroud)

鉴于此,为什么这不起作用?

var a = [1,2,3,4,5,1,-1,6,7,8,9,10,2,11];
var smallest = 0;
var biggest = 0;
a.reduce(function(prev,cur,index,array){
    smallest = prev < cur ? prev : cur;
    biggest =  prev > cur ? prev : cur;
});
console.log([smallest, biggest]); // prints [11,11]
Run Code Online (Sandbox Code Playgroud)

在repl.it上测试.

javascript

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

ASP.NET MVC - 默认范围验证错误消息未被覆盖

假设我有一个这样的模型属性:

[Range(1, 31, ErrorMessage = "O dia de fechamento deve possuir valores entre 1 e 31")]
public int DataInicial { get; set; }
Run Code Online (Sandbox Code Playgroud)

即使在注释上设置了自定义错误消息,我仍然收到范围注释的默认错误消息“请输入小于或等于 31 的值。”,当我在@Html.TextBoxFor(model => model.DataInicial)场地。

我知道这篇文章,但我认为如果您可以在注释级别设置自定义消息,它应该可以在不设置 App_GlobalResources 和 .resx 文件、设置第三方库或其他任何内容的情况下工作......我知道添加 . resx 文件并将所有这些验证字符串放在那里,是一种“最佳实践”,但是......

那么,我可能哪里出错了,因为消息显示不正确?

先感谢您。

c# asp.net-mvc rangevalidator data-annotations asp.net-mvc-4

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

为什么需要对Java中的某些字符转换进行逐位"和"?

在这里,我正在使用Java到C#样本应用程序翻译,涉及加密(AES和RSA等等......)

在Java代码(实际工作并被转换为C#)的某个时刻,我发现了这段代码:

for (i = i; i < size; i++) {
    encodedArr[j] = (byte) (data[i] & 0x00FF);
    j++;
} // where data variable is a char[] and encodedArr is a byte[]
Run Code Online (Sandbox Code Playgroud)

经过一些谷歌搜索(这里),我已经看到这是一个主要在Java代码上的常见行为...

我知道这char是一个16位类型,byte只有8位,但我无法理解这种按位和char->byte转换操作的原因.

有人能解释一下吗

先感谢您.

c# java bit-manipulation type-conversion

6
推荐指数
2
解决办法
112
查看次数

dotnet aspnet-codegenerator 工具未找到 Microsoft.VisualStudio.Web.CodeGeneration.Design

我刚刚使用dotnet new mvc --name test-project( netcoreapp3.1) 创建了一个 MVC 应用程序,没有任何类型的数据库访问和身份,我想手动添加以用于自定义目的。然后我添加了一些包以便使用该dotnet aspnet-codegenerator工具。我的.csproj看起来像这样:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <RootNamespace>test_project</RootNamespace>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.4" />
    <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.1.7" />
    <PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="3.1.7" />
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.7" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.7">
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.7">
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>
    <PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
    <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="3.1.4" />
    <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL.Design" Version="1.1.0" />
  </ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,这Microsoft.VisualStudio.Web.CodeGeneration.Design是列表中的第一个。但是,当我尝试从该dotnet …

c# code-generation .net-core asp.net-core asp.net-core-scaffolding

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

如何使用SQL Server检索类似Facebook的人?

在我的应用程序中,我遇到了问题,以及面对它们的人员列表.今天我通过STUFF函数检索所有人的名字,如下面的示例:

select problem.*, 
(
    STUFF
    (
        (
            SELECT TOP(3)', ' + person.name
            FROM 
                problem_person
                LEFT JOIN person ON problem_person.personId = person.Id
            WHERE 
                problem_person.problemId = problem.Id
                order by person.name
            FOR XML PATH(''), TYPE
        ).value('.', 'NVARCHAR(MAX)'), 1, 1, ''
    )
) as peopleWhoFaced from problem
Run Code Online (Sandbox Code Playgroud)

然而,当很多人面临同样的问题时,peopleWhoFaced领域变得巨大.如何找回类似的东西Person 1, Person 2 and 36 more faced the problem?我知道我可以在API级别执行此操作,但我正在尝试避免这样做,并保持API代码清洁.

我怎么能做到这一点?我需要光标或类似的东西吗?

先感谢您.

sql-server

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

如何在Asp Net Core RC1 MVC中添加带有令牌认证的"ApiController"

我知道这个问题可能会收到一些downvotes,但是我在Google上搜索了三天,没有真正可用的结果.

我在Visual Studio中创建了一个默认的ASP.NET Core 1.0 RC1项目,具有个人用户帐户身份验证/授权.这一切都很简单,因为该项目是脚手架使用Microsoft.AspNet.Authentication.Cookies,VS 2015完成所有繁重的工作.

但是,我们希望从同一个项目(使用相同的数据库,用户,声明等)公开API,这些API将从移动设备甚至一些简单的SPA中使用.这样,我们需要为API使用类似JWT的东西(有很多关于如何使用WebAPI执行此操作的教程).

我们希望使用MVC(而不是SPA)方式来执行主项目,以利用视图/控制器脚手架以及Visual Studio可以提供的所有内容.

有许多仅限MVC或仅支持WebAPI的教程,但您能指出我如何将它们混合在一起?

有没有办法只在整个系统范围内使用JWT和MVC和WebAPI?

先感谢您.

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

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

来自 IHttpClientFactory 的类型化 HttpClient 实例的生命周期是多少,其中将接收该实例的类型注册为“AddScoped”?

长话短说

在.NET 6 中:

接收该HttpClient实例的类型被注册为“Scoped”的类型化实例的生命周期是多少?IHttpClientFactory

当我们像下面的摘录那样注册它时,它不应该是一种“定时单例”(无论使用它的类的生命周期如何)吗?或者是HttpClient Transient - 并且 .NET 不缓存其任何配置,并且仅池化处理程序?

services.AddHttpClient<IServiceInterface, ServiceImpl>(client =>
{
    client.BaseAddress = "<some absolute URL here>";
}
    .SetHandlerLifetime(TimeSpan.FromMinutes(5));

services.AddScoped<IServiceInterface, ServiceImpl>();
Run Code Online (Sandbox Code Playgroud)

语境

我正在开发的应用程序访问不同地址的多个外部 API。我将每个服务访问逻辑封装到具有各自接口的服务类中,以便可以在运行时注入它们。按照 Microsoft 的规定,我使用的是 Typed HttpClients,并且我编写了一个辅助方法来配置它们Startup.cs

public static IServiceCollection ConfigureHttpClientForService<TInterface, TImpl>
    (this IServiceCollection services, Func<IServiceProvider, Uri> func)
    where TInterface : class
    where TImpl : class, TInterface
{
    services.AddHttpClient<TInterface, TImpl>((provider, client) =>
    {
        var uri = func(provider);
        client.BaseAddress = uri;
    })
        // Polly Rules here and other …
Run Code Online (Sandbox Code Playgroud)

.net c# dependency-injection dotnet-httpclient httpclientfactory

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

如何查询多个链接服务器?

链接一些 SQL Server 2008 服务器/实例后,我想对这些服务器进行更通用的查询。我知道我必须像这样指定查询的命运:

select * 
from [SRV\INSTANCE].dbname.dbo.foo
Run Code Online (Sandbox Code Playgroud)

但是,我会针对多个链接服务器运行此查询。我也知道这个 select 语句返回的正是SRV\INSTANCE我需要的:

select ss.name 
from sys.servers ss 
where ss.server_id > 0
Run Code Online (Sandbox Code Playgroud)

这个,servers\instances从我想要查询的地方返回所有内容。

在这种情况下,所有数据库都具有相同的结构,所以我想做这样的事情:

select * 
from [select ss.name from sys.servers ss where ss.server_id > 0].DBNAME.dbo.foo
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

提前致谢。

sql linked-server sql-server-2008 multiserver

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

FileHelpers:混合定界和固定长度记录

在这里,我必须使用FileHelpers和C#编写一个记录,其中记录用管道分隔。大部分字段的长度是可变的(因此,我的记录将是[DelimitedRecord(“ |”)])。但是某些字段必须具有固定的长度(它们必须具有填充,特定格式等)。

我用谷歌搜索了一堆,没有目标如何实现。

例:

[DelimitedRecord("|")]
public class Customer
{
    public int CustId; //variable length

    public string Name; //variable length

    public decimal Balance; //variable length

    [FieldConverter(ConverterKind.Date, "dd-MM-yyyy")]
    public DateTime AddedDate;

    public int Code; // this one must have 10 characters with "zero-fill", like
             // 153 must look like 0000000153

}
Run Code Online (Sandbox Code Playgroud)

我该怎么做?我是否必须使用Converter方法并为此编写自己的Converter?

先感谢您。

.net c# filehelpers

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

有没有办法在较旧的Android设备(甜甜圈)上升级API级别?

在没有目标的情况下到处搜索谷歌后,我想向你问一些问题,Android开发者:

有没有办法升级(编译API或其他)旧版Android(如Donut)的API级别,更加"可用"级别(如Eclair或Froyo上的那个)?

我的场景:我有一个非常古老的Galaxy I7500,运行Galax0(Donut-1.6),并且想要一些有趣的/编程/低级编程.我知道所有的挣扎(因为它只有~96 Mb的实际可用内存,所以我必须训练我的算法优化技能),但是因为我说"我想要一些乐趣",它包括使用一些更新的应用.

如果不可能本地移植API,有没有办法将它们包含在我的app负载中?

一个名为Drakaz的Android Dev分叉了一个CM(Froyo和GB)并为这个设备构建,但Galax0仍然表现更好,所以这就是我想把更新的API移植到这个老版Android版本的原因.

是的,我还有另一个设备可以播放(使用ICS)=).

有任何想法吗?

api android upgrade donut-chart

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

MappingException:没有持久化器 - NHibernate - 持久化适配器

好吧,我用谷歌搜索了很多,发现了相同的建议(将 hbm 设置为嵌入式资源,在 hibernate.cfg 中添加 hbm 等),尽管如此,我仍然不明白。

让我解释一下:我为检票口设备编写了一个通信 Dll,其中有一个配置模型类,我用它通过 TCP/IP 配置该设备。但现在,我必须将这个对象持久保存在数据库上,因此我在模型中编写了一个适配器,将一个对象粘合到另一个对象上。这样,我就有了一个适用于我的配置模型的适配器,其中包含 ID、InclusionDate 等。让我们来看看:

DeviceConf 模型类:

public class DeviceConf : BaseModel // which have ID, IncludedDate, etc
{
    private TGCommHelper.Entities.Configuration.TicketGateConfig _conf;

    public TGCommHelper.Entities.Configuration.TicketGateConfig conf
    {
        get { return _conf; }
        private set { _conf = value; }
    }
    public DeviceConf()
    {
        conf = new TGCommHelper.Entities.Configuration.TicketGateConfig();
    }
    public DeviceConf(TGCommHelper.Entities.Configuration.TicketGateConfig config){
        conf = config;
    }

    public virtual string IP
    {
        get { return conf.IP; }
        set { conf.IP = value; }
    }

    public …
Run Code Online (Sandbox Code Playgroud)

c# nhibernate persistence nhibernate-mapping

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