Skip to content

Commit 70f49d8

Browse files
committed
Fix #542
1 parent 3a97825 commit 70f49d8

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

XmlSchemaClassGenerator/ModelBuilder.cs

+7-4
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ private void RenameInterfacePropertiesIfRenamedInDerivedClasses()
210210
&& implementationClassProperty.XmlSchemaName == interfaceProperty.XmlSchemaName
211211
&& implementationClassProperty.IsAttribute == interfaceProperty.IsAttribute)
212212
{
213-
RenameInterfacePropertyInBaseClasses(interfaceModel, implementationClass, interfaceProperty, implementationClassProperty.Name);
213+
RenameInterfacePropertyInBaseClasses(interfaceModel, implementationClass, implementationClassProperty);
214214
interfaceProperty.Name = implementationClassProperty.Name;
215215
}
216216
}
@@ -256,12 +256,15 @@ private void PromoteInterfacePropertiesToCollection()
256256
}
257257

258258
private static void RenameInterfacePropertyInBaseClasses(InterfaceModel interfaceModel, ReferenceTypeModel implementationClass,
259-
PropertyModel interfaceProperty, string newName)
259+
PropertyModel implementationClassProperty)
260260
{
261261
foreach (var derivedClass in interfaceModel.AllDerivedReferenceTypes().Where(c => c != implementationClass))
262262
{
263-
foreach (var propertyModel in derivedClass.Properties.Where(p => p.Name == interfaceProperty.Name))
264-
propertyModel.Name = newName;
263+
foreach (var propertyModel in derivedClass.Properties.Where(p =>
264+
implementationClassProperty.OriginalPropertyName == p.OriginalPropertyName
265+
&& implementationClassProperty.XmlSchemaName == p.XmlSchemaName
266+
&& implementationClassProperty.IsAttribute == p.IsAttribute))
267+
propertyModel.Name = implementationClassProperty.Name;
265268
}
266269
}
267270

0 commit comments

Comments
 (0)