Пример #1
0
        /// <summary>
        /// Internalizes a type descriptor.
        /// </summary>
        /// <param name="td">a type descriptor</param>
        /// <returns>equivalent type descriptor which is contained inside the library</returns>
        public TypeDescriptor Canonicalize(TypeDescriptor td)
        {
            TypeDescriptor tdOut;

            if (_types.TryGetValue(td, out tdOut))
            {
                return(tdOut);
            }
            else
            {
                td         = td.Clone();
                _types[td] = td;
                if (!td.HasIntrinsicTypeOverride)
                {
                    PackageDescriptor pd = GetPackage(td.CILType);
                    td.Package = pd;
                    pd.AddChild(td, td.Name);
                }
                return(td);
            }
        }
Пример #2
0
 internal void Nest(PackageDescriptor owner)
 {
     owner.AddChild(this);
     Owner = owner;
 }