NameForType() публичный статический Метод

public static NameForType ( Type t ) : string
t System.Type
Результат string
Пример #1
0
        public Exception WrongArityException(int reqArity)
        {
            string name   = Util.NameForType(GetType());
            int    suffix = name.LastIndexOf("__", StringComparison.Ordinal); // NOt sure if this is necessary

            return(new ArityException(
                       reqArity,
                       (suffix == -1 ? name : name.Substring(0, suffix)).Replace('_', '-')));
        }
Пример #2
0
        public static object InvokeConstructor(Type t, object[] args)
        {
            //  TODO: Replace with GetContructors/GetMatchingMethodAux
            IEnumerable <ConstructorInfo> einfos = t.GetConstructors().Where(ci => ci.GetParameters().Length == args.Length);
            List <ConstructorInfo>        infos  = new List <ConstructorInfo>(einfos);

            if (infos.Count == 0)
            {
                throw new ArgumentException("NO matching constructor found for " + t.Name);
            }
            else if (infos.Count == 1)
            {
                ConstructorInfo info = infos[0];
                return(info.Invoke(BoxArgs(info.GetParameters(), args)));
            }
            else
            {
                ConstructorInfo info = null;

                // More than one with correct arity.  Find best match.
                ConstructorInfo found = null;
                foreach (ConstructorInfo ci in infos)
                {
                    ParameterInfo[] pinfos = ci.GetParameters();
                    if (IsCongruent(pinfos, args))
                    {
                        if (found == null || Subsumes(pinfos, found.GetParameters()))
                        {
                            found = ci;
                        }
                    }
                }
                info = found;


                if (info == null)
                {
                    throw new InvalidOperationException(string.Format("Cannot find c-tor for type: {0} with the correct argument type", Util.NameForType(t)));
                }

                return(info.Invoke(BoxArgs(info.GetParameters(), args)));
            }
        }
Пример #3
0
        public Type importClass(Type t)
        {
            string n = Util.NameForType(t);

            return(importClass(Symbol.intern(n), t));
        }