小编tri*_*god的帖子

Roslyn Analyzer 分析命名空间

我们有一些指导方针,我们希望如何使用我们的命名空间,并且还有对它们的访问限制。因为开发者有时会做错这件事,所以我们需要分析这些规则。目前我们正在使用 nDepend 来做这件事,它运行良好。但是必须有人监视这个过程,找到违反这些规则的人并强迫他修复它的过程非常耗时。因此,在开发过程中或至少在构建当前更改之后立即获得通知会非常好。这应该是 roslyn 分析器的工作。

在过去的 3 个小时里,我已经向 roslyn 进行了自我介绍,但我对功能列表及其工作方式感到有些不知所措。也许你可以给我一个提示,我如何才能实现我想要的。

我们正在讨论具有 > 1m 行代码和近 35000 种类型的解决方案。所以性能确实很重要。

我想做的事:

  1. 获取当前类
  2. 获取当前类的命名空间
  3. 获取所有使用的类型及其全名

如果我能做到这一点,剩下的就相对容易了。我玩过它,也许我需要打开类的当前项目和编译。但是打开这个非常耗时,因此性能会非常难看。

c# roslyn roslyn-code-analysis

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

循环中的 NgRx-Entity-Selector

我有以下问题。假设我向服务器发出请求,服务器按特定顺序提供了 id 列表。其他调用正在加载实体,我将它们置于单独的状态:

所以简化后我的状态类似于:

{
  topList: [ 7, 3, 1, 4 ],
  entities: { // basic ngrx-entity structure
    ids: ...
    entities: ...
  }
}
Run Code Online (Sandbox Code Playgroud)

该组件的简化版本如下所示。

@Component({
  selector: 'my-list-component',
  template: `
    <div *ngFor="let id in (toplist$ | async)">
      <my-single-item-component [entity]="???"></my-single-item-component>    
    </div>
  `
})

export class MyComponent implements OnInit {

  public toplist$ = this.store.pipe(select(getToplist)); 

  public getEntityById$ = this.store.pipe(???)

  constructor(store: Store<State>) {}

  ngOnInit() { }
}
Run Code Online (Sandbox Code Playgroud)

所以我需要从模板中调用一些带有动态 id 的选择器。

我找到了一个带有 Observable 函数的解决方案,但是模板变得非常难看。我想这一定是一个普遍的问题。有人对此有一个巧妙的解决方案吗?

谢谢你!

ngrx angular ngrx-store ngrx-entity

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