我正在设计一组通用接口(interface),以阐明某些报表的构造。
为了实现这一点,我使用了泛型,并且我必须在不同的 Fluent 类之间传递三个泛型参数。有时我必须传递其中的四个,但这都是由框架完成的,其背后的想法是,只要给予足够的关注,就可以拥有一个完整的接口(interface),而根本不必键入任何泛型。
一个例子是
t1.Schedule.ForSession(Session).
WithName("TestName").
Map.
Args.FromResultsOfTask(t2).UsingDefaultMappings().
And.
WaitOnCompletionOfTask(t4);
运行 FXCop 会产生无穷无尽的此类投诉:
Error, Certainty 85, for AvoidExcessiveParametersOnGenericTypes
我正在使用泛型来创建“类型安全”(也许类型感知更正确)接口(interface),其中可以定义映射
...
Map.Args.From(myObject).
Mapping(x=>x.MyProperty).To(y=>y.ArgsProperty).
...
我可以采用什么策略来减少泛型的使用并仍然实现编译安全的自定义映射?
有没有人成功地利用泛型(并且可以给我指出一组很好的例子)来实现流畅的界面?
最佳答案
在我看来,您应该为您的代码抑制 FXCop 警告。如果自然存在三个泛型类型参数,那么这就是生活。仔细记录它,它应该没问题,IMO。
像 FXCop 这样的工具是用来提供帮助的,而不是成为代码的最终仲裁者。
关于c# - 流畅的接口(interface) : Avoid Excessive Parameters On Generic Types,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7490125/