public static LinkedMemberInfo Create(LinkedMemberHierarchy hierarchy, [CanBeNull] LinkedMemberInfo parent, Type genericTypeArgument, int argumentIndex)
        {
            GenericTypeArgumentData memberData;

            if (!genericTypeArgumentPool.TryGet(out memberData))
            {
                memberData = new GenericTypeArgumentData();
            }
            var created = Create(hierarchy, memberData);

            created.Setup(parent, genericTypeArgument, argumentIndex);
            return(created);
        }
 public static void Dispose(GenericTypeArgumentData memberData)
 {
     genericTypeArgumentPool.Dispose(ref memberData);
 }