blob: 90c44ce68104813df46109db520bf1b62c98329d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
using System;
using System.Collections.Generic;
using System.Text;
namespace IvyBus
{
[AttributeUsage(AttributeTargets.Method,AllowMultiple = true)]
public sealed class IvyBindingAttribute : Attribute
{
private string expression;
private string[] args;
// translate part of expression to object property
public string GetExpression(object obj)
{
if (obj == null) return string.Format(expression);
object[] values = new object[args.Length];
for (int i = 0; i < args.Length; i++)
{
values[i] = obj.GetType().GetProperty(args[i]).GetValue(obj,null);
}
return string.Format(expression,values);
}
public IvyBindingAttribute(string expression, params string[] args)
{
this.expression = expression;
this.args = args;
}
}
}
|