Skip to content

Commit 8a9411f

Browse files
authored
Merge pull request #223 from skondratov/feature/admit-non-public-types
Add new command line argument '--admit-non-public-types' It enables generating serializer source code for non-public types.
2 parents d125775 + e79c00b commit 8a9411f

File tree

2 files changed

+18
-6
lines changed

2 files changed

+18
-6
lines changed

src/mpu/Program.cs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ private static int Execute( IEnumerable<string> args )
8383
var excludingPattern = default( string );
8484
var treatWarningsAsErrors = false;
8585
var warningLevel = 4;
86+
var admitNonPublicTypes = false;
8687
var configuration =
8788
new SerializerCodeGenerationConfiguration
8889
{
@@ -181,6 +182,10 @@ private static int Execute( IEnumerable<string> args )
181182
"excludes=", "[serializer, optional] Specify additional regular expression to filter in serialization target types. This filter is used for type full name including its namespace.",
182183
value => excludingPattern = value
183184
},
185+
{
186+
"admit-non-public-types", "[serializer, optional] Specify to enable code generation for non-public types.",
187+
_ => admitNonPublicTypes = true
188+
},
184189
{
185190
"treat-warning-as-errors|treatWarningsAsErrors", "[serializer, optional] Specify to generate error for compiler warnings for serialization target types.",
186191
_ => treatWarningsAsErrors = true
@@ -220,6 +225,7 @@ private static int Execute( IEnumerable<string> args )
220225
excludingPattern,
221226
treatWarningsAsErrors,
222227
warningLevel,
228+
admitNonPublicTypes,
223229
configuration
224230
);
225231
return 0;
@@ -288,6 +294,7 @@ private static void GenerateSerializers(
288294
string excludingPattern,
289295
bool treatWarningsAsErrors,
290296
int warningLevel,
297+
bool admitNonPublicTypes,
291298
SerializerCodeGenerationConfiguration configuration
292299
)
293300
{
@@ -311,7 +318,8 @@ SerializerCodeGenerationConfiguration configuration
311318
referenceAssemblies ?? new string[ 0 ]
312319
),
313320
includingPattern,
314-
excludingPattern
321+
excludingPattern,
322+
admitNonPublicTypes
315323
);
316324
}
317325
else
@@ -320,7 +328,8 @@ SerializerCodeGenerationConfiguration configuration
320328
generator.GenerateSerializers(
321329
sourceFilePathes[ 0 ],
322330
includingPattern,
323-
excludingPattern
331+
excludingPattern,
332+
admitNonPublicTypes
324333
);
325334
}
326335

src/mpu/SerializerCodeGenerator.cs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,14 +71,16 @@ public SerializerCodeGenerator( SerializerCodeGenerationConfiguration configurat
7171
public IEnumerable<string> GenerateSerializers(
7272
string sourceAssemblyFile,
7373
string includingPattern,
74-
string excludingPattern
74+
string excludingPattern,
75+
bool admitNonPublicTypes
7576
)
7677
{
7778
return
7879
this.GenerateSerializers(
7980
Assembly.LoadFrom( sourceAssemblyFile ),
8081
includingPattern,
81-
excludingPattern
82+
excludingPattern,
83+
admitNonPublicTypes
8284
);
8385
}
8486

@@ -95,7 +97,8 @@ string excludingPattern
9597
public IEnumerable<string> GenerateSerializers(
9698
Assembly sourceAssembly,
9799
string includingPattern,
98-
string excludingPattern
100+
string excludingPattern,
101+
bool admitNonPublicTypes
99102
)
100103
{
101104
if ( sourceAssembly == null )
@@ -129,7 +132,7 @@ string excludingPattern
129132
sourceAssembly.GetTypes()
130133
.Where(
131134
type =>
132-
type.IsPublic
135+
(admitNonPublicTypes || type.IsPublic)
133136
&& !type.IsAbstract
134137
&& !type.IsInterface
135138
&& ( includingRegex == null || includingRegex.IsMatch( type.FullName ) )

0 commit comments

Comments
 (0)