There may be cases where aspects will have the same id for various reasons.
In this case the following strategy should be employed:
- Group the aspects with the same Id into a new aspect -
CompositeAspect which will implement IAspect itself.
- This aspect will receive the list of the wrapped aspects where each wrapper will expose a new truly unique id based on the original aspect id, e.g. SameId => SameId2