Skip to content

Commit 75c07fd

Browse files
author
Michael Ganss
committed
Improved support for default values
1 parent 20919f5 commit 75c07fd

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

XmlSchemaClassGenerator/TypeModel.cs

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,19 @@ public IEnumerable<ClassModel> AllBaseClasses
222222
}
223223
}
224224

225+
public IEnumerable<TypeModel> AllBaseTypes
226+
{
227+
get
228+
{
229+
var baseType = BaseClass;
230+
while (baseType != null)
231+
{
232+
yield return baseType;
233+
baseType = (baseType as ClassModel)?.BaseClass;
234+
}
235+
}
236+
}
237+
225238
public override CodeTypeDeclaration Generate()
226239
{
227240
var classDeclaration = base.Generate();
@@ -399,13 +412,15 @@ public List<ClassModel> GetAllDerivedTypes()
399412

400413
public override CodeExpression GetDefaultValueFor(string defaultString)
401414
{
402-
if (BaseClass is SimpleModel)
415+
var rootClass = AllBaseTypes.LastOrDefault();
416+
417+
if (rootClass is SimpleModel)
403418
{
404419
string reference, val;
405420

406421
using (var writer = new System.IO.StringWriter())
407422
{
408-
CSharpProvider.GenerateCodeFromExpression(BaseClass.GetDefaultValueFor(defaultString), writer, new CodeGeneratorOptions());
423+
CSharpProvider.GenerateCodeFromExpression(rootClass.GetDefaultValueFor(defaultString), writer, new CodeGeneratorOptions());
409424
val = writer.ToString();
410425
}
411426

0 commit comments

Comments
 (0)