@@ -18,13 +18,14 @@ internal static class SymbolExtensions
1818{
1919 private const string NamespaceMongoDBBson = "MongoDB.Bson" ;
2020 private const string NamespaceMongoDBBsonAttributes = "MongoDB.Bson.Serialization.Attributes" ;
21+ private const string NamespaceMongoDBBsonSerializationOptions = "MongoDB.Bson.Serialization.Options" ;
2122 private const string AssemblyMongoDBDriver = "MongoDB.Driver" ;
2223 private const string NamespaceMongoDBDriver = "MongoDB.Driver" ;
2324 private const string NamespaceMongoDBLinq = "MongoDB.Driver.Linq" ;
2425 private const string NamespaceSystem = "System" ;
2526 private const string NamespaceSystemLinq = "System.Linq" ;
2627
27- private static readonly HashSet < string > s_knownBsonTypes = new ( )
28+ private static readonly HashSet < string > s_supportedBsonTypes = new ( )
2829 {
2930 "MongoDB.Bson.BsonDocument" ,
3031 "MongoDB.Bson.BsonValue" ,
@@ -59,6 +60,11 @@ internal static class SymbolExtensions
5960 "BsonTimeSpanOptionsAttribute"
6061 } ;
6162
63+ private static readonly HashSet < string > s_supportedBsonSerializationOptions = new ( )
64+ {
65+ "MongoDB.Bson.Serialization.Options.TimeSpanUnits"
66+ } ;
67+
6268 private static readonly HashSet < string > s_supportedSystemTypes = new ( )
6369 {
6470 "System.DateTimeKind" ,
@@ -171,9 +177,13 @@ public static bool IsSupportedBsonAttribute(this ITypeSymbol typeSymbol) =>
171177 s_supportedBsonAttributes . Contains ( typeSymbol ? . Name ) &&
172178 typeSymbol ? . ContainingNamespace ? . ToDisplayString ( ) == NamespaceMongoDBBsonAttributes ;
173179
180+ public static bool IsSupportedBsonSerializationOption ( this ITypeSymbol typeSymbol ) =>
181+ s_supportedBsonSerializationOptions . Contains ( typeSymbol . ToDisplayString ( ) ) &&
182+ typeSymbol ? . ContainingNamespace ? . ToDisplayString ( ) == NamespaceMongoDBBsonSerializationOptions ;
183+
174184 public static bool IsSupportedBsonType ( this ITypeSymbol typeSymbol ) =>
175185 typeSymbol ? . ContainingNamespace ? . ToDisplayString ( ) == NamespaceMongoDBBson &&
176- s_knownBsonTypes . Contains ( typeSymbol . ToDisplayString ( ) ) ;
186+ s_supportedBsonTypes . Contains ( typeSymbol . ToDisplayString ( ) ) ;
177187
178188 public static bool IsString ( this ITypeSymbol typeSymbol ) =>
179189 typeSymbol ? . SpecialType == SpecialType . System_String ;
0 commit comments