static void Main(string[] args)
    {
        var something  = new ClassWithAttributes();
        var attributes = typeof(ClassWithAttributes).GetCustomAttributesData();
        var attribute  = (SomeAttribute)Attribute.GetCustomAttribute(typeof(ClassWithAttributes), typeof(SomeAttribute));

        Console.WriteLine(attribute.Name);
        Console.ReadKey(false);
    }
示例#2
0
        public void TestAttr1()
        {
            // Force include
            var x = new ClassWithAttributes();
            x.MyProperty = 5;
            Assert.AssertEquals(5, x.MyProperty);

            var properties = typeof(ClassWithAttributes).GetProperties();
            Assert.AssertEquals(1, properties.Length);

            var attr = properties[0].GetCustomAttributes(typeof(MyAttribute), false);
            Assert.AssertEquals(1, attr.Length);
        }
示例#3
0
        public void It_Should_Ignore_A_Field()
        {
            // Act
            var testClass = new ClassWithAttributes {
                Ignored = "ignored", Ok = "ok", Renamed = "renamed"
            };

            var result = _converter.Convert(testClass);

            Assert.True(result.HasValue);
            var objAsHash = (LiquidHash)result.Value;

            // Assert
            Assert.False(objAsHash.ContainsKey("ignored"));
            Assert.True(objAsHash.ContainsKey("ok"));
        }
示例#4
0
        public void It_Should_Rename_A_Field()
        {
            // Act
            var testClass = new ClassWithAttributes {
                Ignored = "ignored", Ok = "ok", Renamed = "renamed"
            };

            var result = _converter.Convert(testClass);

            Assert.True(result.HasValue);
            var objAsHash = (LiquidHash)result.Value;

            // Assert
            Assert.True(objAsHash["somethingelse"].HasValue);
            Assert.Equal(LiquidString.Create("renamed"), objAsHash["somethingelse"].Value);
        }
示例#5
0
        public void ClassService_WithInstanceRegistration_CallsInterceptor()
        {
            var tracker           = new Tracker();
            var testClassInstance = new ClassWithAttributes(tracker);
            var serviceProvider   = new ServiceCollection()
                                    .AddSingleton(tracker)
                                    .AddSingleton(testClassInstance)
                                    .AddSingleton <TestInterceptor>()
                                    .AddAttributeInterception()
                                    .BuildServiceProvider();
            var target = serviceProvider.GetRequiredService <ClassWithAttributes>();

            target.MethodWithTestInterceptor();

            AssertHelper.Proxy(target);
            Assert.Equal(1, tracker.InterceptorCalls);
            Assert.Equal(1, tracker.TargetCalls);
        }
示例#6
0
        public void It_Should_Ignore_A_Null_Field_When_IgnoreIfNull(String fieldValue)
        {
            // Act
            var testClass = new ClassWithAttributes {
                SomeField = fieldValue
            };

            var result = _converter.Convert(testClass);

            Assert.True(result.HasValue);
            var objAsHash = (LiquidHash)result.Value;

            // Assert
            Assert.Equal(fieldValue != null, objAsHash.ContainsKey("notnull"));
            if (objAsHash.ContainsKey("notnull"))
            {
                Assert.Equal(fieldValue.ToLiquid(), objAsHash.Value);
            }
        }
示例#7
0
 public abstract IInterfaceable AbstractMethod(int a, ClassWithAttributes classWith);