Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 11 additions & 2 deletions src/mpu/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ private static int Execute( IEnumerable<string> args )
var excludingPattern = default( string );
var treatWarningsAsErrors = false;
var warningLevel = 4;
var admitNonPublicTypes = false;
var configuration =
new SerializerCodeGenerationConfiguration
{
Expand Down Expand Up @@ -181,6 +182,10 @@ private static int Execute( IEnumerable<string> args )
"excludes=", "[serializer, optional] Specify additional regular expression to filter in serialization target types. This filter is used for type full name including its namespace.",
value => excludingPattern = value
},
{
"admit-non-public-types", "[serializer, optional] Specify to enable code generation for non-public types.",
_ => admitNonPublicTypes = true
},
{
"treat-warning-as-errors|treatWarningsAsErrors", "[serializer, optional] Specify to generate error for compiler warnings for serialization target types.",
_ => treatWarningsAsErrors = true
Expand Down Expand Up @@ -220,6 +225,7 @@ private static int Execute( IEnumerable<string> args )
excludingPattern,
treatWarningsAsErrors,
warningLevel,
admitNonPublicTypes,
configuration
);
return 0;
Expand Down Expand Up @@ -288,6 +294,7 @@ private static void GenerateSerializers(
string excludingPattern,
bool treatWarningsAsErrors,
int warningLevel,
bool admitNonPublicTypes,
SerializerCodeGenerationConfiguration configuration
)
{
Expand All @@ -311,7 +318,8 @@ SerializerCodeGenerationConfiguration configuration
referenceAssemblies ?? new string[ 0 ]
),
includingPattern,
excludingPattern
excludingPattern,
admitNonPublicTypes
);
}
else
Expand All @@ -320,7 +328,8 @@ SerializerCodeGenerationConfiguration configuration
generator.GenerateSerializers(
sourceFilePathes[ 0 ],
includingPattern,
excludingPattern
excludingPattern,
admitNonPublicTypes
);
}

Expand Down
11 changes: 7 additions & 4 deletions src/mpu/SerializerCodeGenerator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -71,14 +71,16 @@ public SerializerCodeGenerator( SerializerCodeGenerationConfiguration configurat
public IEnumerable<string> GenerateSerializers(
string sourceAssemblyFile,
string includingPattern,
string excludingPattern
string excludingPattern,
bool admitNonPublicTypes
)
{
return
this.GenerateSerializers(
Assembly.LoadFrom( sourceAssemblyFile ),
includingPattern,
excludingPattern
excludingPattern,
admitNonPublicTypes
);
}

Expand All @@ -95,7 +97,8 @@ string excludingPattern
public IEnumerable<string> GenerateSerializers(
Assembly sourceAssembly,
string includingPattern,
string excludingPattern
string excludingPattern,
bool admitNonPublicTypes
)
{
if ( sourceAssembly == null )
Expand Down Expand Up @@ -129,7 +132,7 @@ string excludingPattern
sourceAssembly.GetTypes()
.Where(
type =>
type.IsPublic
(admitNonPublicTypes || type.IsPublic)
&& !type.IsAbstract
&& !type.IsInterface
&& ( includingRegex == null || includingRegex.IsMatch( type.FullName ) )
Expand Down