小编fra*_*tor的帖子

Process.Start()何时可以返回null?

我有一些代码通过使用Process.Start(ProcessStartInfo)启动进程.我从文档中看到,如果重用现有进程,此方法可以返回null.

[返回]与流程资源关联的新Process组件,如果未启动任何流程资源,则返回null(例如, 如果重用现有流程).

现有流程重用以及在何种情况下会发生什么意味着什么?

.net c#

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

为类库运行dotnet ef迁移会产生错误MSB4006

我有一个针对.NET Framework 4.6.2的ASP.NET核心Web应用程序(.NET Framework)项目.

我已将Entity Framework引入Web项目并已设置并运行

dotnet ef migrations add Initial
Run Code Online (Sandbox Code Playgroud)

来自web项目目录.迁移已创建,一切都很好.

我想重构代码,以便我的实体和数据库上下文在类库中.所以我创建了一个单独的类库(.NET Framework)项目,同样针对.NET Framework 4.6.2.

仍然从我运行的web项目目录

dotnet ef migrations add Initial --startup-project . --project ..\MigrationTest.Entities
Run Code Online (Sandbox Code Playgroud)

MigrationTest.Entities我的班级图书馆在哪里

这次我得到:

C:\ Projects\Experiments\MigrationTestNoIdentity\MigrationTest.Entities\obj\MigrationTest.Entities.csproj.EntityFrameworkCore.targets(4,5):错误MSB4006:目标依赖关系图中存在循环依赖关系,涉及目标"GetEFProjectMetadata".[C:\ Projects\Experiments\MigrationTestNoIdentity\MigrationTest.Entities\MigrationTest.Entities.csproj]无法检索项目元数据.确保它是基于MSBuild的.NET Core项目.如果您使用的是自定义BaseIntermediateOutputPath或MSBuildProjectExtensionsPath值,请使用--msbuildprojectextensionspath选项.

它不是.NET Core项目,所以我尝试创建一个.NET Core项目.运行迁移命令然后给出:

C:\ Program Files\dotnet\sdk\1.0.3\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.Common.targets(73,5):错误:项目'C:\ Projects\Experiments\MigrationTestNoIdentity\MigrationTest.Entities.Core\MigrationTest.Entities.Core.csproj'target'.NETCoreApp,Version = v1.1'.它不能被针对".NETFramework,Version = v4.6.2"的项目引用.[C:\ Projects\Experiments\MigrationTestNoIdentity\MigrationTest.Entities.Core\MigrationTest.Entities.Core.csproj] C:\ Program Files\dotnet\sdk\1.0.3\Sdks\Microsoft.NET.Sdk\build\Microsoft. NET.Sdk.targets(92,5):错误:找不到'C:\ Projects\Experiments\MigrationTestNoIdentity\MigrationTest.Entities.Core\MigrationTest.Entities.Core.csproj'的项目信息.这可能表示缺少项目参考.[C:\项目\实验\ MigrationTestNoIdentity\MigrationTest.Web\MigrationTest.Web.csproj]

当然,.NET项目不能引用Core项目.

我正在尝试做一个受支持的场景吗?我的命令行使用有问题吗?别的什么?

entity-framework-core

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

d3.js和TypeScript编译错误

我正在通过示例Force Dragging I进行操作,并且能够使用纯JavaScript进行此操作.但是,尝试使用TypeScript时出现编译错误.

问题代码(删除了无关的部分)是:

import * as d3 from "d3";

interface INode {
    id: string;
    group: number;
}

interface ILink {
    source: string;
    target: string;
    value: number;
}

interface IGraph {
    nodes: INode[];
    links: ILink[];
}

var svg = d3.select("svg");

d3.json("data/miserables.json", function (error, graph: IGraph) {

    var node = svg.append("g")
        .selectAll("circle")
        .data(graph.nodes) // Commenting this out, error goes away
        .enter().append("circle")
        .call(d3.drag() // Error here
            .on("start", dragstarted)
            .on("drag", dragged)
            .on("end", dragended));
});
Run Code Online (Sandbox Code Playgroud)

.call(d3.drag()行引起以下tsc错误:

App.tsx(31,15):错误TS2345:类型'DragBehavior'的参数不能分配给类型'的参数(选择:选择,... args:any [])=> void'.参数'选择'和'选择'的类型是不兼容的."选择"类型不能分配给"选择"类型.类型'BaseType'不能分配给'Element'类型.类型'null'不能分配给'Element'类型. …

d3.js typescript

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

UIElement与FrameworkElement

我不清楚你何时会使用a UIElement而不是a FrameworkElement,为什么会有一个FrameworkElement类.从本质上讲,FrameworkElement提供的额外功能是什么,而不是UIElement

wpf frameworkelement uielement

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

如何在 ASP.NET Core Identity 中允许空用户名

我的应用程序的注册工作流程允许仅在确认电子邮件地址后设置用户名。使用 Microsoft.AspNetCore.Identity 1.1.1.0 中的默认值和实体框架会在数据库中生成一个 AspNetUsers 表,其中包含可为空的 UserName 列。但是,如果我尝试向 UserManager.CreateAsync() 提供具有 null UserName 的 IdentityUser 实例,则会收到错误:“用户名 '' 无效,只能包含字母或数字。”。

我想避免设置临时的非空值,因为用户名应该是唯一的,但不是电子邮件地址。其他解决方法(例如 guid)看起来就像是一个 hack。

允许空用户名为空的最佳方法是什么?

asp.net-core asp.net-core-identity

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

我可以在.NET 4.7.2 Web API 中删除ConfigureAwait(false) 吗?

我正在检查一些使用 .NET 4.7.2 的 ASP.NET Web API 代码。

这是一个示例控制器和操作方法:

  public class ThingController : System.Web.Http.ApiController
  {
      // ...

      public async Task<IHttpActionResult> GetValue()
      {
          var value = await _db.GetValue().ConfigureAwait(false);
          return Content(value);
      }
  }
Run Code Online (Sandbox Code Playgroud)

我读到,最佳实践是不在ConfigureAwait应用程序代码中使用,以便继续执行捕获的同步上下文,因为可能存在与捕获的上下文关联的所需状态。然而,一般来说,我们应该使用ConfigureAwait(false)这样的方法,这样我们就不会不必要地继续捕获的同步上下文。

所以我的想法是,我们不想ConfigureAwait(false)在此 Web API 代码中的任何位置进行调用。

然后我读到了有关死锁的内容,并且在使用 ASP.NET Core 时这并不重要(尽管我不是)。

我添加了一个断点并检查了SynchronizationContext.Current哪个是null.

ConfigureAwait(false)我可以安全地删除该项目的所有调用吗?如果不是,在什么情况下应该保留这些调用?

.net async-await asp.net-web-api

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