小编Ali*_*eza的帖子

基于其他程序集类生成源代码(c#源代码生成器)

我想生成一个静态类,它应该有一个方法,具体取决于特定参考程序集中的其他类。

一个简化的例子:

// Generator.csproj
[Generator]
   public class MyGenerator : ISourceGenerator
   {
      public void Initialize(GeneratorInitializationContext context)
      {
          // Register a factory that can create our custom syntax receiver
          context.RegisterForSyntaxNotifications(() => new MySyntaxReceiver());
      }

      public void Execute(GeneratorExecutionContext context)
      {
          // var syntaxReceiver = (MySyntaxReceiver)context.SyntaxReceiver;
      }
   }

    private class MySyntaxReceiver : ISyntaxReceiver
    {
       ....
    }
Run Code Online (Sandbox Code Playgroud)
// Core.csproj
// namespace Core.Entities
class Entity1 : IAccessControl {}
class Entity2  {}
class Entity3 : IAccessControl {}
Run Code Online (Sandbox Code Playgroud)
// Persistence.csproj => has a reference to Core …
Run Code Online (Sandbox Code Playgroud)

c# sourcegenerators csharp-source-generator

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

以编程方式按“右 Shift”键

我无法找到一种以编程方式专门按下右 Shift 键的方法。我需要一个向下和向上的键(按下/释放)。

我所拥有的是:

SendKeys.Send("{RSHIFT}")
Run Code Online (Sandbox Code Playgroud)

我知道这种转变就像:

SendKeys.Send("+")
Run Code Online (Sandbox Code Playgroud)

我想这只是 Shift 键,但我特别需要一个右 Shift 键。

有人可以帮我解决这个代码吗?

c# vb.net keyboard

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

更改实体框架核心代码第一次迁移名称格式

ef core 使用系统日历格式生成迁移名称。

Windows 上公历的标准迁移名称示例:

20190206144020_MIGRATION-NAME
Run Code Online (Sandbox Code Playgroud)

但是,如果 Windows 的日期格式不是公历,例如波斯历,则 ef 核心迁移名称会生成如下内容:

13971114210223_MIGRATION-NAME
Run Code Online (Sandbox Code Playgroud)

在团队项目中,我们不能同时使用这两种格式,因为它会改变迁移的顺序。

有没有办法在不更改 Windows 日历格式或手动重命名迁移的情况下解决该问题?

版本:EF 核心 2.2

entity-framework-core entity-framework-migrations

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

按列表中的项目分组、计数并获取总计

我有一个帐户对象,例如:

public class Account
{
   public int Id { get; set; }
   public List<Elegibilities> Elegibilities { get; set; }
}

public class Elegibilities
{
   public int Id { get; set; }
   public string Label { get; set; }
   public bool Value { get; set;}
}
Run Code Online (Sandbox Code Playgroud)

我的存储库返回帐户列表。List<Account>

我想按其中的项目进行分组和计数,Elegibilities输出如下:

{
   Total: 30,
    [
       {
          Id : 1,
          Label: "Elegibility1",
          Count: 10
       },
       {
          Id : 2,
          Label: "Elegibility2",
          Count: 20
       }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我遇到问题,因为它是另一个列表中的列表。

是否可以通过单个 LINQ 查询来解决?

c# linq

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