private void AddDependency(ITypeReference type)
        {
            type = type.UnWrap();

            // We are not directly interested in generic instances or parameters, they will get broken down into
            // their various pieces from the traversal and that is what we are interested in.
            if (type.IsGenericInstance() || type.IsGenericParameter())
            {
                return;
            }

            // We don't care about WindowsRuntime types
            if (type.IsWindowsRuntimeType())
            {
                return;
            }

            AddGeneralDependency(type);

            // Don't walk the full type for dependencies because a type dependency is only a reference to the type
            // and we will already walk any particular method or field reference from it which is all we need.
        }