internal SpecializedMemberWithParametersReference (string prefix, SpecializedTypeReference type, string member, TypeReference[] parameters) {
     if (type == null) throw new ArgumentNullException("type");
     if (parameters == null) throw new ArgumentNullException("parameters");
     this.prefix = prefix;
     this.type = type;
     this.member = member;
     this.parameters = parameters;
 }
        private void WriteSpecializedType (SpecializedTypeReference special, DisplayOptions options, XmlWriter writer) {

            Specialization[] specializations = special.Specializations;
            for (int i = 0; i < specializations.Length; i++) {
                if (i == 0) {
                    WriteSpecialization(specializations[0], options, writer);
                } else {
                    WriteSeperator(writer);
                    WriteSpecialization(specializations[i], options & ~DisplayOptions.ShowContainer, writer);
                }

            }

        }
 internal SpecializedMemberReference (SimpleMemberReference member, SpecializedTypeReference type) {
     if (member == null) throw new ArgumentNullException("member");
     if (type == null) throw new ArgumentNullException("type");
     this.member = member;
     this.type = type;
 }
 private static SpecializedTypeReference CreateSpecializedTypeReference (XPathNavigator node) {
     Stack<Specialization> specializations = new Stack<Specialization>();
     XPathNavigator typeNode = node.Clone();
     while (typeNode != null) {
         specializations.Push(CreateSpecialization(typeNode));
         typeNode = typeNode.SelectSingleNode("type");
     }
     SpecializedTypeReference reference = new SpecializedTypeReference(specializations.ToArray());
     return (reference);
 }