@@ -123,6 +123,34 @@ private static TypeSyntax ArrayType(TypeSyntax type) => SyntaxFactory.ArrayType(
123123 SyntaxFactory . SingletonSeparatedList < ExpressionSyntax > (
124124 SyntaxFactory . OmittedArraySizeExpression ( ) ) ) ) ) ;
125125
126+ private static ThrowStatementSyntax ThrowNotSupportedException ( string containingTypeName , SyntaxGenerator generator )
127+ {
128+ return ( ThrowStatementSyntax ) generator . ThrowStatement (
129+ generator . ObjectCreationExpression (
130+ ParseTypeName ( "System.NotSupportedException" ) ,
131+ SyntaxFactory . Argument (
132+ expression : SyntaxFactory . InterpolatedStringExpression (
133+ stringStartToken : SyntaxFactory . Token ( SyntaxKind . InterpolatedStringStartToken ) ,
134+ contents : SyntaxFactory . List (
135+ new InterpolatedStringContentSyntax [ ]
136+ {
137+ SyntaxFactory . Interpolation (
138+ openBraceToken : SyntaxFactory . Token ( SyntaxKind . OpenBraceToken ) ,
139+ expression : ( ExpressionSyntax ) generator . NameOfExpression ( SyntaxFactory . ParseTypeName ( containingTypeName ) ) ,
140+ alignmentClause : default ,
141+ formatClause : default ,
142+ closeBraceToken : SyntaxFactory . Token ( SyntaxKind . CloseBraceToken ) ) ,
143+ SyntaxFactory . InterpolatedStringText (
144+ textToken : SyntaxFactory . Token (
145+ leading : default ,
146+ kind : SyntaxKind . InterpolatedStringTextToken ,
147+ text : " can only be used in OneWay bindings" ,
148+ valueText : " can only be used in OneWay bindings" ,
149+ trailing : default ) ) ,
150+ } ) ,
151+ stringEndToken : SyntaxFactory . Token ( SyntaxKind . InterpolatedStringEndToken ) ) ) ) ) ;
152+ }
153+
126154 private static class IValueConverter
127155 {
128156 internal static MethodDeclarationSyntax Convert ( SyntaxGenerator generator , NullableContext nullableContext )
@@ -153,36 +181,8 @@ internal static MethodDeclarationSyntax ConvertBack(SyntaxGenerator generator, s
153181 generator . ParameterDeclaration ( "parameter" , Object ( nullableContext ) ) ,
154182 generator . ParameterDeclaration ( "culture" , ParseTypeName ( "System.Globalization.CultureInfo" ) ) ,
155183 } ,
156- statements : new [ ] { Throw ( ) } ) )
184+ statements : new [ ] { ThrowNotSupportedException ( containingTypeName , generator ) } ) )
157185 . WithExplicitInterfaceSpecifier ( SyntaxFactory . ExplicitInterfaceSpecifier ( SyntaxFactory . ParseName ( "IValueConverter" ) ) ) ;
158-
159- ThrowStatementSyntax Throw ( )
160- {
161- return ( ThrowStatementSyntax ) generator . ThrowStatement (
162- generator . ObjectCreationExpression (
163- ParseTypeName ( "System.NotSupportedException" ) ,
164- SyntaxFactory . Argument (
165- expression : SyntaxFactory . InterpolatedStringExpression (
166- stringStartToken : SyntaxFactory . Token ( SyntaxKind . InterpolatedStringStartToken ) ,
167- contents : SyntaxFactory . List (
168- new InterpolatedStringContentSyntax [ ]
169- {
170- SyntaxFactory . Interpolation (
171- openBraceToken : SyntaxFactory . Token ( SyntaxKind . OpenBraceToken ) ,
172- expression : ( ExpressionSyntax ) generator . NameOfExpression ( SyntaxFactory . ParseTypeName ( containingTypeName ) ) ,
173- alignmentClause : default ,
174- formatClause : default ,
175- closeBraceToken : SyntaxFactory . Token ( SyntaxKind . CloseBraceToken ) ) ,
176- SyntaxFactory . InterpolatedStringText (
177- textToken : SyntaxFactory . Token (
178- leading : default ,
179- kind : SyntaxKind . InterpolatedStringTextToken ,
180- text : " can only be used in OneWay bindings" ,
181- valueText : " can only be used in OneWay bindings" ,
182- trailing : default ) ) ,
183- } ) ,
184- stringEndToken : SyntaxFactory . Token ( SyntaxKind . InterpolatedStringEndToken ) ) ) ) ) ;
185- }
186186 }
187187 }
188188
@@ -216,36 +216,8 @@ internal static MethodDeclarationSyntax ConvertBack(string containingTypeName, S
216216 generator . ParameterDeclaration ( "parameter" , Object ( nullableContext ) ) ,
217217 generator . ParameterDeclaration ( "culture" , ParseTypeName ( "System.Globalization.CultureInfo" ) ) ,
218218 } ,
219- statements : new [ ] { Throw ( ) } ) )
219+ statements : new [ ] { ThrowNotSupportedException ( containingTypeName , generator ) } ) )
220220 . WithExplicitInterfaceSpecifier ( SyntaxFactory . ExplicitInterfaceSpecifier ( SyntaxFactory . ParseName ( "System.Windows.Data.IMultiValueConverter" ) . WithSimplifiedNames ( ) ) ) ;
221-
222- ThrowStatementSyntax Throw ( )
223- {
224- return ( ThrowStatementSyntax ) generator . ThrowStatement (
225- generator . ObjectCreationExpression (
226- ParseTypeName ( "System.NotSupportedException" ) ,
227- SyntaxFactory . Argument (
228- expression : SyntaxFactory . InterpolatedStringExpression (
229- stringStartToken : SyntaxFactory . Token ( SyntaxKind . InterpolatedStringStartToken ) ,
230- contents : SyntaxFactory . List (
231- new InterpolatedStringContentSyntax [ ]
232- {
233- SyntaxFactory . Interpolation (
234- openBraceToken : SyntaxFactory . Token ( SyntaxKind . OpenBraceToken ) ,
235- expression : ( ExpressionSyntax ) generator . NameOfExpression ( SyntaxFactory . ParseTypeName ( containingTypeName ) ) ,
236- alignmentClause : default ,
237- formatClause : default ,
238- closeBraceToken : SyntaxFactory . Token ( SyntaxKind . CloseBraceToken ) ) ,
239- SyntaxFactory . InterpolatedStringText (
240- textToken : SyntaxFactory . Token (
241- leading : default ,
242- kind : SyntaxKind . InterpolatedStringTextToken ,
243- text : " can only be used in OneWay bindings" ,
244- valueText : " can only be used in OneWay bindings" ,
245- trailing : default ) ) ,
246- } ) ,
247- stringEndToken : SyntaxFactory . Token ( SyntaxKind . InterpolatedStringEndToken ) ) ) ) ) ;
248- }
249221 }
250222 }
251223}
0 commit comments