public void DefineParameter_AllAttributes()
        {
            ParameterAttributes[] attributes = new ParameterAttributes[]
            {
                ParameterAttributes.HasDefault,
                ParameterAttributes.HasFieldMarshal,
                ParameterAttributes.In,
                ParameterAttributes.None,
                ParameterAttributes.Optional,
                ParameterAttributes.Out,
                ParameterAttributes.Retval
            };

            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Abstract);

            Type[]        paramTypes = Enumerable.Repeat(typeof(int), attributes.Length).ToArray();
            MethodBuilder method     = type.DefineMethod("TestMethod", TestMethodAttributes, typeof(void), paramTypes);

            for (int i = 1; i < attributes.Length; ++i)
            {
                ParameterBuilder parameter = method.DefineParameter(i, attributes[i], "TestParam");
                VerifyParameterBuilder(parameter, "TestParam", attributes[i], i);
            }
        }
        public void DefineField_NullFieldName_ThrowsArgumentNullException()
        {
            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);

            AssertExtensions.Throws <ArgumentNullException>("fieldName", () => type.DefineField(null, typeof(int), FieldAttributes.Public));
        }
        public void GetFields_TypeNotCreated_ThrowsNotSupportedException()
        {
            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);

            Assert.Throws <NotSupportedException>(() => type.AsType().GetFields());
        }
        public void DefineField_VoidFieldType_ThrowsArgumentException()
        {
            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);

            AssertExtensions.Throws <ArgumentException>(null, () => type.DefineField("Name", typeof(void), FieldAttributes.Public));
        }
        public void DefineField_InvalidFieldName_ThrowsArgumentException(string fieldName)
        {
            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);

            AssertExtensions.Throws <ArgumentException>("fieldName", () => type.DefineField(fieldName, typeof(int), FieldAttributes.Public));
        }
예제 #6
0
        public void SetCustomAttribute_CustomAttributeBuilder_NullAttributeBuilder_ThrowsArgumentNullException()
        {
            AssemblyBuilder assembly = Helpers.DynamicAssembly();

            AssertExtensions.Throws <ArgumentNullException>("customBuilder", () => assembly.SetCustomAttribute(null));
        }
예제 #7
0
        public void SetCustomAttribute_ConstructorBuidler_ByteArray_NullConstructorBuilder_ThrowsArgumentNullException()
        {
            AssemblyBuilder assembly = Helpers.DynamicAssembly();

            AssertExtensions.Throws <ArgumentNullException>("con", () => assembly.SetCustomAttribute(null, new byte[0]));
        }
예제 #8
0
        public void GetManifestResourceInfo_ThrowsNotSupportedException()
        {
            AssemblyBuilder assembly = Helpers.DynamicAssembly();

            Assert.Throws <NotSupportedException>(() => assembly.GetManifestResourceInfo(""));
        }
예제 #9
0
        public void DefineDynamicModule_InvalidName_ThrowsArgumentException(string name)
        {
            AssemblyBuilder assembly = Helpers.DynamicAssembly();

            AssertExtensions.Throws <ArgumentException>("name", () => assembly.DefineDynamicModule(name));
        }
예제 #10
0
        public void DefineDynamicModule_NullName_ThrowsArgumentNullException()
        {
            AssemblyBuilder assembly = Helpers.DynamicAssembly();

            AssertExtensions.Throws <ArgumentNullException>("name", () => assembly.DefineDynamicModule(null));
        }