示例#1
0
            public GenericTypeRefResolver(TypeRefResolver baseResolver, TypeRefBuilder[] genericArgs)
            {
                _baseResolver = baseResolver;
                _genericArgs  = genericArgs;

                if (genericArgs.Length == 0)
                {
                    throw new WeavingException("No generic arguments supplied");
                }
            }
示例#2
0
            public ArrayTypeRefResolver(TypeRefResolver baseResolver, int rank)
                : base(baseResolver)
            {
                _rank = rank;

                if (rank < 1)
                {
                    throw new WeavingException($"Invalid array rank: {rank}, must be at least 1");
                }
            }
示例#3
0
 public TypeRefBuilder(ModuleDefinition module, GenericParameterType genericParameterType, int genericParameterIndex)
 {
     _module   = module;
     _resolver = new GenericParameterTypeRefResolver(genericParameterType, genericParameterIndex);
 }
示例#4
0
 public TypeRefBuilder(ModuleDefinition module, TypeReference typeRef)
 {
     _module   = module;
     _resolver = new ConstantTypeRefResolver(typeRef);
 }
示例#5
0
 public void MakeGenericType(TypeRefBuilder[] genericArgs)
 => _resolver = new GenericTypeRefResolver(_resolver, genericArgs);
示例#6
0
 public void MakeArrayType(int rank)
 => _resolver = new ArrayTypeRefResolver(_resolver, rank);
示例#7
0
 public void MakeByRefType()
 => _resolver = new ByRefTypeRefResolver(_resolver);
示例#8
0
 public void MakePointerType()
 => _resolver = new PointerTypeRefResolver(_resolver);
示例#9
0
 public PointerTypeRefResolver(TypeRefResolver baseResolver)
     : base(baseResolver)
 {
 }
示例#10
0
 public ByRefTypeRefResolver(TypeRefResolver baseResolver)
     : base(baseResolver)
 {
 }
示例#11
0
 protected TypeSpecTypeRefResolver(TypeRefResolver baseResolver)
 => _baseResolver = baseResolver;