Hi guys,
Something I've noticed with the Add To Interface refactoring is that it doesn't show generic parameters.
If there's a hierarchy of interfaces that differ only by generic parameters, you can't tell what interface you're adding it to.
I use this refactoring a lot but I can only use it about half the time I want to because I've got lots of interface hierarchies like below.
I've attached a screenshot of what CodeRush shows when I try and add a method to this interface.
C#public interface IConfigurationValueEntity : IPersistentEntity, ISystemDataTypeProvider
{
......
}
public interface IConfigurationValueEntity<TConfiguration> : IConfigurationValueEntity
where TConfiguration : class, IConfigurationEntity, IPersistentDistinctEntity<TConfiguration>, new()
{
......
}
public interface IConfigurationValueEntity<TConfiguration, TEntityType> : IConfigurationValueEntity<TConfiguration>
where TConfiguration : class, IConfigurationEntity, IPersistentDistinctEntity<TConfiguration>, new()
where TEntityType : class, IPersistentDistinctEntity<TEntityType>, IEntityType, new()
{
.....
}
public interface IConfigurationValueEntity<TConfigurationValue, TEntityType, TConfiguration, TConfiguredEntity, in TConfigurationKeyEnum> : IConfigurationValueEntity<TConfiguration, TEntityType>, IChildEntity<TConfigurationValue, TConfiguredEntity>
where TConfigurationValue : class, IPersistentDistinctEntity<TConfigurationValue>, IConfigurationValueEntity<TConfigurationValue, TEntityType, TConfiguration, TConfiguredEntity, TConfigurationKeyEnum>, new()
where TConfiguration : class, IPersistentDistinctEntity<TConfiguration>, IConfigurationEntity<TConfiguration, TEntityType>, new()
where TConfiguredEntity : class, IPersistentDistinctEntity<TConfiguredEntity>, IConfiguredEntity<TConfiguredEntity, TEntityType, TConfiguration, TConfigurationKeyEnum, TConfigurationValue>, new()
where TConfigurationKeyEnum : struct
where TEntityType : class, IPersistentDistinctEntity<TEntityType>, IEntityType, new()
{
.........
}
Hi Quentin,
Thank you for providing the code sample and screenshot. I have reproduced this issue with the "Add To Interface" refactoring locally. We are working on it and will inform you of our progress.