我们有一些指导方针,我们希望如何使用我们的命名空间,并且还有对它们的访问限制。因为开发者有时会做错这件事,所以我们需要分析这些规则。目前我们正在使用 nDepend 来做这件事,它运行良好。但是必须有人监视这个过程,找到违反这些规则的人并强迫他修复它的过程非常耗时。因此,在开发过程中或至少在构建当前更改之后立即获得通知会非常好。这应该是 roslyn 分析器的工作。
在过去的 3 个小时里,我已经向 roslyn 进行了自我介绍,但我对功能列表及其工作方式感到有些不知所措。也许你可以给我一个提示,我如何才能实现我想要的。
我们正在讨论具有 > 1m 行代码和近 35000 种类型的解决方案。所以性能确实很重要。
我想做的事:
如果我能做到这一点,剩下的就相对容易了。我玩过它,也许我需要打开类的当前项目和编译。但是打开这个非常耗时,因此性能会非常难看。
我有以下问题。假设我向服务器发出请求,服务器按特定顺序提供了 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 函数的解决方案,但是模板变得非常难看。我想这一定是一个普遍的问题。有人对此有一个巧妙的解决方案吗?
谢谢你!