【问题标题】:Fluent Interfaces: Avoid Excessive Parameters On Generic Types流畅的接口:避免泛型类型的参数过多
【发布时间】:2011-09-21 02:48:57
【问题描述】:

我正在设计一组通用接口,以阐明一些报表的构造。

为了实现这一点,我使用了泛型,我必须在不同的流式类之间传递三个泛型参数。有时我必须通过其中的四个,但这都是由框架完成的,其背后的想法是,只要有足够的注意力,就可以拥有一个完整的界面,而无需输入任何泛型。

一个例子是

        t1.Schedule.ForSession(Session).
            WithName("TestName").
            Map.
            Args.FromResultsOfTask(t2).UsingDefaultMappings().
            And.
            WaitOnCompletionOfTask(t4);

运行 FXCop 会产生无穷无尽的此类投诉:

Error, Certainty 85, for AvoidExcessiveParametersOnGenericTypes

我正在使用泛型来创建“类型安全”(也许类型感知更正确)接口,其中映射可以定义为

...
Map.Args.From(myObject).
    Mapping(x=>x.MyProperty).To(y=>y.ArgsProperty).
...

我可以采用哪些策略来减少泛型的使用并仍然实现编译安全的自定义映射?

有没有人成功地利用泛型(并且可以指出一组很好的例子)来实现流畅的接口?

【问题讨论】:

标签: c# generics fluent-interface


【解决方案1】:

在我看来,您应该为您的代码取消 FXCop 警告。如果自然存在三个泛型类型参数,那么这就是生活。仔细记录它,应该没问题,IMO。

像 FXCop 这样的工具是有帮助的,而不是成为代码的最终仲裁者。

【讨论】:

    猜你喜欢
    • 2016-09-14
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    • 2018-05-26
    • 1970-01-01
    相关资源
    最近更新 更多