コード例 #1
0
        public void CreateInstance_NamedArgument()
        {
            var declaration = new CustomAttributeDeclaration(_defaultCtor, new object[0], new NamedArgumentDeclaration(_property, 4711));

            var instance = (AbcAttribute)declaration.CreateInstance();

            Assert.That(instance.Property, Is.EqualTo(4711));
        }
コード例 #2
0
        public void CreateInstance_CtorArgument()
        {
            ICustomAttributeData declaration = new CustomAttributeDeclaration(_ctorWithArgs, new object[] { 7 });

            var instance = (AbcAttribute)declaration.CreateInstance();

            Assert.That(instance.CtorArg, Is.EqualTo(7));
        }
コード例 #3
0
        public void CreateInstance_NullArguments()
        {
            var ctorArg     = new object[] { "x", null };
            var declaration = new CustomAttributeDeclaration(
                _ctorWithArgs, new object[] { ctorArg }, new NamedArgumentDeclaration(_property, null));

            var instance = (AbcAttribute)declaration.CreateInstance();

            Assert.That(instance.CtorArg, Is.EqualTo(ctorArg));
            Assert.That(instance.Property, Is.Null);
        }
コード例 #4
0
        public void CreateInstance_ComplexArguments()
        {
            var ctorArg     = new object[] { "x", 7, typeof(int), new[] { MyEnum.C, MyEnum.A } };
            var namedArg    = new object[] { "z", 8, new[] { 1, 2, 3 }, new[] { typeof(double), typeof(string) }, MyEnum.B };
            var declaration = new CustomAttributeDeclaration(
                _ctorWithArgs, new object[] { ctorArg }, new NamedArgumentDeclaration(_property, namedArg));

            var instance = (AbcAttribute)declaration.CreateInstance();

            Assert.That(instance.CtorArg, Is.EqualTo(ctorArg));
            Assert.That(instance.Property, Is.EqualTo(namedArg));
        }