1
我正在設計一組通用接口以闡明某些報告的構造。Fluent接口:避免泛型類型的過多參數
要做到這一點,我使用泛型,我要好好的不同流利階層之間在三個通用參數。有時我必須通過其中的四個,但這一切都是由框架完成的,背後的想法是,如果有足夠的注意力,就可以擁有一個完整的界面,而不必輸入任何泛型。
一個例子是
t1.Schedule.ForSession(Session).
WithName("TestName").
Map.
Args.FromResultsOfTask(t2).UsingDefaultMappings().
And.
WaitOnCompletionOfTask(t4);
運行的FxCop產生無盡的一套complaintsof此類型:
Error, Certainty 85, for AvoidExcessiveParametersOnGenericTypes
我使用泛型創建「類型安全」(也許鍵入知道更正確的)映射可以定義的接口,如
...
Map.Args.From(myObject).
Mapping(x=>x.MyProperty).To(y=>y.ArgsProperty).
...
什麼策略c我是否採用減少泛型的使用並仍然實現編譯安全的自定義映射?
有沒有人成功地使用仿製藥(並可以指向我一個很好的一套例子),以實現一個流暢的界面呢?
什麼是醜陋的API。 – CodesInChaos
@CodeInChaos也許吧。但它有一個目的。 – mhttk
Microsoft現在將此代碼分析警告記錄爲:[CA1005:避免泛型類型上的過多參數](https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1005-avoid-excessive-parameters-on -generic類型) – DavidRR