예제 #1
0
        public static ClrType Create(ClrNamespace ns, Type type)
        {
            if (type.IsDelegate())
            {
                return(new ClrDelegate(ns, type));
            }
            if (type.IsClass)
            {
                return(new ClrClass(ns, type));
            }
            if (type.IsInterface)
            {
                return(new ClrInterface(ns, type));
            }
            if (type.IsEnum)
            {
                return(new ClrEnumeration(ns, type));
            }
            if (type.IsValueType)
            {
                return(new ClrStructure(ns, type));
            }

            throw new ArgumentException($"Unexpected type: {type}");
        }
예제 #2
0
 public ClrClass(ClrNamespace ns, Type typeInfo)
     : base(ns, typeInfo)
 {
 }
예제 #3
0
 public ClrEnumeration(ClrNamespace ns, Type typeInfo)
     : base(ns, typeInfo)
 {
 }
예제 #4
0
파일: ClrDelegate.cs 프로젝트: Khojasteh/DG
 public ClrDelegate(ClrNamespace ns, Type typeInfo)
     : base(ns, typeInfo)
 {
 }
예제 #5
0
 public ClrInterface(ClrNamespace ns, Type typeInfo)
     : base(ns, typeInfo)
 {
 }
예제 #6
0
 private ClrType(ClrNamespace ns, ClrType owner, Type typeInfo)
     : base(owner, typeInfo)
 {
     Namespace = ns ?? owner.Namespace;
     Members   = CollectMembers();
 }
예제 #7
0
 protected ClrType(ClrNamespace ns, Type typeInfo)
     : this(ns, null, typeInfo)
 {
 }
예제 #8
0
 public ClrStructure(ClrNamespace ns, Type typeInfo)
     : base(ns, typeInfo)
 {
 }