@@ -360,32 +360,45 @@ static void Execute(
360360 sb . AppendLine ( "#endif" ) ;
361361 sb . AppendLine ( " public static void Init()" ) ;
362362 sb . AppendLine ( " {" ) ;
363- sb . AppendLine ( " if (initialized)" ) ;
364- sb . AppendLine ( " return;" ) ;
365- sb . AppendLine ( " initialized = true;" ) ;
363+ sb . AppendLine ( " if (initialized)" ) ;
364+ sb . AppendLine ( " return;" ) ;
365+ sb . AppendLine ( " initialized = true;" ) ;
366+
367+ foreach ( var classInfo in classes ) {
368+ var fullTypeName = FullTypeName ( classInfo ) ;
369+ var initName = "Init" + fullTypeName . Replace ( "." , "_" ) ;
370+ sb . AppendLine ( $ " { initName } ();") ;
371+ }
366372
367- foreach ( var classInfo in classes )
368- {
369- foreach ( var property in classInfo . Properties )
370- {
371- var fullTypeName = string . IsNullOrEmpty ( classInfo . Namespace )
372- ? classInfo . ClassName
373- : $ "{ classInfo . Namespace } .{ classInfo . ClassName } ";
373+ sb . AppendLine ( " }" ) ;
374374
375+ foreach ( var classInfo in classes ) {
376+ var fullTypeName = FullTypeName ( classInfo ) ;
377+ var initName = "Init" + fullTypeName . Replace ( "." , "_" ) ;
378+ sb . AppendLine ( $ " public static void { initName } ()") ;
379+ sb . AppendLine ( " {" ) ;
380+ foreach ( var property in classInfo . Properties ) {
375381 sb . AppendLine ( $ " SQLiteConnection.RegisterFastColumnSetter(") ;
376382 sb . AppendLine ( $ " typeof({ fullTypeName } ),") ;
377383 sb . AppendLine ( $ " \" { property . ColumnName } \" ,") ;
378384 sb . Append ( $ " (obj, stmt, index) => ") ;
379385 GeneratePropertySetter ( $ "(({ fullTypeName } )obj)", sb , property ) ;
380386 }
381- }
387+ sb . AppendLine ( " }" ) ;
388+ }
382389
383- sb . AppendLine ( " }" ) ;
384390 sb . AppendLine ( " }" ) ;
385391 sb . AppendLine ( "}" ) ;
386392
387393 context . AddSource ( "SQLiteInitializer.g.cs" , SourceText . From ( sb . ToString ( ) , Encoding . UTF8 ) ) ;
388394 }
395+
396+ static string FullTypeName ( ClassInfo classInfo )
397+ {
398+ return string . IsNullOrEmpty ( classInfo . Namespace )
399+ ? classInfo . ClassName
400+ : $ "{ classInfo . Namespace } .{ classInfo . ClassName } ";
401+ }
389402
390403 static string ? GetRootNamespace ( AnalyzerConfigOptionsProvider configOptionsProvider , Compilation compilation )
391404 {
0 commit comments