NServiceBus.JsonMessageSerializer.FindRootTypes C# (CSharp) Method

FindRootTypes() static private method

static private FindRootTypes ( IEnumerable messageTypesToDeserialize ) : IEnumerable
messageTypesToDeserialize IEnumerable
return IEnumerable
        static IEnumerable<Type> FindRootTypes(IEnumerable<Type> messageTypesToDeserialize)
        {
            Type currentRoot = null;
            foreach (var type in messageTypesToDeserialize)
            {
                if (currentRoot == null)
                {
                    currentRoot = type;
                    yield return currentRoot;
                    continue;
                }
                if (!type.IsAssignableFrom(currentRoot))
                {
                    currentRoot = type;
                    yield return currentRoot;
                }
            }
        }