File tree 3 files changed +42
-1
lines changed
src/FubarDev.BeanIO/Internal/Util
test/FubarDev.BeanIO.Test
3 files changed +42
-1
lines changed Original file line number Diff line number Diff line change @@ -354,7 +354,7 @@ private string RemovePrefixForSetter(string setterName)
354
354
var typeInfo = _typeInfo ;
355
355
while ( typeInfo != typeof ( object ) )
356
356
{
357
- methodInfo = typeInfo . GetMethod ( name ) ;
357
+ methodInfo = typeInfo . GetMethod ( name , BindingFlags . Instance | BindingFlags . Public | BindingFlags . NonPublic ) ;
358
358
if ( methodInfo != null )
359
359
break ;
360
360
if ( typeInfo . BaseType == null )
Original file line number Diff line number Diff line change @@ -37,5 +37,14 @@ public class Bean
37
37
public Bean ? record ;
38
38
public Bean ? segment ;
39
39
#endregion
40
+
41
+ public int ? NoOpSetter
42
+ {
43
+ get => 1 ;
44
+ }
45
+
46
+ private void SetNoOpSetter ( int ? value )
47
+ {
48
+ }
40
49
}
41
50
}
Original file line number Diff line number Diff line change
1
+ // <copyright file="PrivateSetterTests.cs" company="Fubar Development Junker">
2
+ // Copyright (c) 2016 Fubar Development Junker. All rights reserved.
3
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
4
+ // </copyright>
5
+
6
+ using BeanIO . Beans ;
7
+ using BeanIO . Builder ;
8
+
9
+ using Xunit ;
10
+
11
+ namespace BeanIO . Issues ;
12
+
13
+ public class PrivateSetterTests
14
+ {
15
+ [ Fact ]
16
+ public void TestPrivateSetter ( )
17
+ {
18
+ var factory = StreamFactory . NewInstance ( ) ;
19
+ factory . Define (
20
+ new StreamBuilder ( "s" )
21
+ . Format ( "fixedlength" )
22
+ . AddRecord (
23
+ new RecordBuilder ( "r" , typeof ( Bean ) )
24
+ . AddField ( new FieldBuilder ( nameof ( Bean . NoOpSetter ) )
25
+ . Length ( 1 )
26
+ . RegEx ( "[0-9]" )
27
+ . Setter ( "SetNoOpSetter" ) ) ) ) ;
28
+ var unmarshaller = factory . CreateUnmarshaller ( "s" ) ;
29
+ var bean = Assert . IsType < Bean > ( unmarshaller . Unmarshal ( "1" ) ) ;
30
+ Assert . Equal ( 1 , bean . NoOpSetter ) ;
31
+ }
32
+ }
You can’t perform that action at this time.
0 commit comments