@@ -36,14 +36,19 @@ public enum FeatureStatus
3636 /// </summary>
3737 public static class Features
3838 {
39- private static Dictionary < string , FeatureStatus > _featureStatusMap = new Dictionary < string , FeatureStatus >
39+ private static readonly Dictionary < string , FeatureStatus > _featureStatusMap = CreateDefaultFeatureStatusMap ( ) ;
40+
41+ private static Dictionary < string , FeatureStatus > CreateDefaultFeatureStatusMap ( )
4042 {
41- { "BuildCheck.Beta" , FeatureStatus . Preview } ,
42- { "CachePlugins" , FeatureStatus . Available } , // Project cache plugins (e.g., Quickbuild) are enabled by default but can be remotely disabled.
43- { "EvaluationContext_SharedSDKCachePolicy" , FeatureStatus . Available } , // EvaluationContext supports the SharingPolicy.SharedSDKCache flag.
44- { "TerminalLogger_MultiLineHandler" , FeatureStatus . Available } , // TerminalLogger has better explicit support for rendering multi-line messages
45- // Add more features here.
46- } ;
43+ return new Dictionary < string , FeatureStatus >
44+ {
45+ { "BuildCheck.Beta" , FeatureStatus . Preview } ,
46+ { "CachePlugins" , FeatureStatus . Available } , // Project cache plugins (e.g., Quickbuild) are enabled by default but can be remotely disabled.
47+ { "EvaluationContext_SharedSDKCachePolicy" , FeatureStatus . Available } , // EvaluationContext supports the SharingPolicy.SharedSDKCache flag.
48+ { "TerminalLogger_MultiLineHandler" , FeatureStatus . Available } , // TerminalLogger has better explicit support for rendering multi-line messages
49+ // Add more features here.
50+ } ;
51+ }
4752
4853 /// <summary>
4954 /// Checks if a feature is available or not.
@@ -72,13 +77,11 @@ internal static void SetFeatureAvailability(string featureName, FeatureStatus st
7277 /// </summary>
7378 internal static void ResetFeatureStatusForTests ( )
7479 {
75- _featureStatusMap = new Dictionary < string , FeatureStatus >
80+ _featureStatusMap . Clear ( ) ;
81+ foreach ( var kvp in CreateDefaultFeatureStatusMap ( ) )
7682 {
77- { "BuildCheck.Beta" , FeatureStatus . Preview } ,
78- { "CachePlugins" , FeatureStatus . Available } ,
79- { "EvaluationContext_SharedSDKCachePolicy" , FeatureStatus . Available } ,
80- { "TerminalLogger_MultiLineHandler" , FeatureStatus . Available } ,
81- } ;
83+ _featureStatusMap [ kvp . Key ] = kvp . Value ;
84+ }
8285 }
8386#endif
8487 }
0 commit comments