I've made a custom ContentScannerExtension that sets Order on the PropertyDefinitionModel in AssignValuesToProperties() method. I can see that i runs but the properties aren't sorted.
What could be wrong?
The scanner extensions looks like this and the log shows that properties gets the order i expect.
[ServiceConfiguration(typeof(ContentScannerExtension))] public class SortOrderScannerExtension : ContentScannerExtension { private ILogger _logger = LogManager.GetLogger(typeof(SortOrderScannerExtension)); public override void AssignValuesToProperties(ContentTypeModel contentTypeModel) { _logger.Information("Handling {0}", contentTypeModel.ModelType.FullName); base.AssignValuesToProperties(contentTypeModel); var propertySortOrderType = contentTypeModel.ModelType.GetNestedTypes(BindingFlags.Public|BindingFlags.NonPublic).FirstOrDefault(x => typeof(IPropertySortOrder).IsAssignableFrom(x)); _logger.Information("propertySortOrder: {0}", propertySortOrderType?.FullName); if (propertySortOrderType == null) return; var sortOrders = (IPropertySortOrder)Activator.CreateInstance(propertySortOrderType); foreach (var propDef in contentTypeModel.PropertyDefinitionModels) { var sortOrder = sortOrders.GetSortOrder(propDef.Name); if (sortOrder > -1) { _logger.Information("- property {0}'s sortOrder = {1}", propDef.Name, sortOrder); propDef.Order = sortOrder; } } } }