示例#1
0
        public ReflectionMethodBase(
            MethodBase methodBase,
            IReflectionFactory factory,
            ParameterInfo[] parameters        = null,
            IReflectionTypeInfo declaringType = null)
        {
            if (methodBase == null)
            {
                throw new ArgumentNullException(nameof(methodBase));
            }

            if (factory == null)
            {
                throw new ArgumentNullException(nameof(factory));
            }

            this.MethodBase        = methodBase;
            this.ReflectionFactory = factory;
            this.DeclaringType     = declaringType;

            if (parameters != null)
            {
                this.parameters = new List <IReflectionParameter>();

                foreach (var param in parameters)
                {
                    this.parameters.Add(this.ReflectionFactory.CreateParameter(param));
                }
            }
        }
示例#2
0
 public ReflectionMethod(
     MethodInfo info,
     IReflectionFactory factory,
     ParameterInfo[] parameters        = null,
     IReflectionTypeInfo declaringType = null)
     : base(info, factory, parameters, declaringType)
 {
     this.MethodInfo = info;
 }
示例#3
0
 public ReflectionConstructor(
     ConstructorInfo constructorInfo,
     IReflectionFactory factory,
     ParameterInfo[] parameters        = null,
     IReflectionTypeInfo declaringType = null)
     : base(constructorInfo, factory, parameters, declaringType)
 {
     this.ConstructorInfo = constructorInfo;
 }
示例#4
0
 public ActivityLogService(IMongoRepository <ActivityLog> repositoryActivityLog,
                           IMongoRepository <LoggedModel> repositoryLoggedModel, IMongoFactory mongoFactory, IReflectionFactory reflectionFactory,
                           IMongoRepository <LoggedCollectionModel> repositoryLoggedCollectionModel
                           )
 {
     _repositoryActivityLog           = repositoryActivityLog;
     _repositoryLoggedModel           = repositoryLoggedModel;
     _mongoFactory                    = mongoFactory;
     _reflectionFactory               = reflectionFactory;
     _repositoryLoggedCollectionModel = repositoryLoggedCollectionModel;
 }
示例#5
0
        public ReflectionTypeInfo(Type type, IReflectionCache cache = null)
        {
            if (type is null)
            {
                throw new ArgumentNullException(nameof(type));
            }

            this.type    = type;
            this.cache   = cache;
            this.factory = cache?.ReflectionFactory ??
                           NerdyMishka.Reflection.ReflectionFactory.Default;
        }
示例#6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Adic.Cache.ReflectionCache"/> class.
 /// </summary>
 public ReflectionCache()
 {
     this.reflectionFactory = this.ReflectionFactoryProvider();
 }
示例#7
0
 public ReflectionTypeInfo(Type type, IReflectionCache cache)
 {
     this.clrType = type ?? throw new ArgumentNullException(nameof(type));
     this.cache   = cache ?? throw new ArgumentNullException(nameof(cache));
     this.factory = cache.Factory ?? ReflectionFactory.Default;
 }
示例#8
0
 public ReflectionCache()
 {
     infos             = new Dictionary <Type, ReflectionInfo>();
     reflectionFactory = new ReflectionFactory();
 }
示例#9
0
        public static Assembly CreateAssembly(ITypeUniverse typeUniverse, MetadataFile manifestModuleImport, MetadataFile[] netModuleImports, IReflectionFactory factory, string manifestFile, string[] netModuleFiles)
        {
            int length = 1;

            if (netModuleImports != null)
            {
                length = length + (int)netModuleImports.Length;
            }
            MetadataOnlyModule[] metadataOnlyModule = new MetadataOnlyModule[length];
            metadataOnlyModule[0] = new MetadataOnlyModule(typeUniverse, manifestModuleImport, factory, manifestFile);
            if (length > 1)
            {
                for (int i = 0; i < (int)netModuleImports.Length; i++)
                {
                    metadataOnlyModule[i + 1] = new MetadataOnlyModule(typeUniverse, netModuleImports[i], factory, netModuleFiles[i]);
                }
            }
            return(new MetadataOnlyAssembly(metadataOnlyModule, manifestFile));
        }
示例#10
0
 public static Assembly CreateAssembly(ITypeUniverse typeUniverse, MetadataFile metadataImport, IReflectionFactory factory, string manifestFile)
 {
     return(AssemblyFactory.CreateAssembly(typeUniverse, metadataImport, null, factory, manifestFile, null));
 }