Ejemplo n.º 1
0
        public ProviderMethodBindingGenerator(
            ModuleDefinition moduleDefinition,
            References references,
            TypeReference moduleType,
            MethodDefinition providerMethod,
            bool isLibrary)
            : base(moduleDefinition, references)
        {
            this.providerMethod = providerMethod;
            this.moduleType     = moduleType;
            this.isLibrary      = isLibrary;

            var name = ProviderMethod.GetNamedAttributeName();

            key = CompilerKeys.ForType(ProviderMethod.ReturnType, name);

            var attr = providerMethod.CustomAttributes.First(Attributes.IsProvidesAttribute);

            if (attr.HasConstructorArguments)
            {
                var providesTypeArg = attr.ConstructorArguments.Single();
                ProvidesType = (ProvidesType)providesTypeArg.Value;
            }
            else
            {
                ProvidesType = ProvidesType.Default;
            }
        }
        public ProviderMethodBindingGenerator(
            ModuleDefinition moduleDefinition,
            References references,
            TypeDefinition moduleType,
            MethodDefinition providerMethod,
            bool isLibrary)
            : base(moduleDefinition, references)
        {
            this.providerMethod = Conditions.CheckNotNull(providerMethod, "providerMethod");
            this.moduleType     = Conditions.CheckNotNull(moduleType, "moduleType");
            this.isLibrary      = isLibrary;

            var name = ProviderMethod.GetNamedAttributeName();

            key = CompilerKeys.ForType(ProviderMethod.ReturnType, name);
        }