@@ -42,41 +42,47 @@ public override void Write(ClassSyntaxReceiver classSyntaxReceiver)
4242
4343 Write ( "public void Set(string propertyName, object target, object value)" ) ;
4444 Write ( "{" ) ; Indent ( ) ;
45- Write ( $ "var v = ({ classObject . FullName } )target;") ;
46- Write ( "switch (propertyName)" ) ;
47- Write ( "{" ) ; Indent ( ) ;
48- foreach ( var field in classObject . FieldSymbols )
45+ if ( classObject . FieldSymbols . Count > 0 || classObject . PropertySymbols . Count > 0 )
4946 {
50- if ( ! field . IsReadOnly )
47+ Write ( $ "var v = ({ classObject . FullName } )target;") ;
48+ Write ( "switch (propertyName)" ) ;
49+ Write ( "{" ) ; Indent ( ) ;
50+ foreach ( var field in classObject . FieldSymbols )
5151 {
52- Write ( GetSetter ( field . Name , field . Type ) ) ;
52+ if ( ! field . IsReadOnly )
53+ {
54+ Write ( GetSetter ( field . Name , field . Type ) ) ;
55+ }
5356 }
54- }
55- foreach ( var property in classObject . PropertySymbols )
56- {
57- if ( property . SetMethod != null )
57+ foreach ( var property in classObject . PropertySymbols )
5858 {
59- Write ( GetSetter ( property . Name , property . Type ) ) ;
59+ if ( property . SetMethod != null )
60+ {
61+ Write ( GetSetter ( property . Name , property . Type ) ) ;
62+ }
6063 }
64+ Write ( "default: throw new ArgumentOutOfRangeException(\" propertyName\" , $\" {propertyName} does not exist or is not settable\" );" ) ;
65+ UnIndent ( ) ; Write ( "}" ) ;
6166 }
62- Write ( "default: throw new ArgumentOutOfRangeException(\" propertyName\" , $\" {propertyName} does not exist or is not settable\" );" ) ;
63- UnIndent ( ) ; Write ( "}" ) ;
6467 UnIndent ( ) ; Write ( "}" ) ;
6568
6669 Write ( "public object Read(string propertyName, object target)" ) ;
6770 Write ( "{" ) ; Indent ( ) ;
6871 Write ( $ "var v = ({ classObject . FullName } )target;") ;
69- Write ( "switch (propertyName)" ) ;
70- Write ( "{" ) ; Indent ( ) ;
71- foreach ( var field in classObject . FieldSymbols )
72+ if ( classObject . FieldSymbols . Count > 0 || classObject . PropertySymbols . Count > 0 )
7273 {
73- Write ( GetReader ( field . Name ) ) ;
74- }
75- foreach ( var property in classObject . PropertySymbols )
76- {
77- Write ( GetReader ( property . Name ) ) ;
74+ Write ( "switch (propertyName)" ) ;
75+ Write ( "{" ) ; Indent ( ) ;
76+ foreach ( var field in classObject . FieldSymbols )
77+ {
78+ Write ( GetReader ( field . Name ) ) ;
79+ }
80+ foreach ( var property in classObject . PropertySymbols )
81+ {
82+ Write ( GetReader ( property . Name ) ) ;
83+ }
84+ UnIndent ( ) ; Write ( "}" ) ;
7885 }
79- UnIndent ( ) ; Write ( "}" ) ;
8086 Write ( "return null;" ) ;
8187 UnIndent ( ) ; Write ( "}" ) ;
8288 UnIndent ( ) ; Write ( "}" ) ;
0 commit comments