日期:2014-05-18  浏览次数:20813 次

这几行代码是什么意思?
[AttributeUsage(AttributeTargets.All, AllowMultiple = true)]
public class AttachDataAttribute : Attribute
{
  public AttachDataAttribute(object key, object value)
  {
  this.Key = key;
  this.Value = value;
  }

  public object Key { get; private set; }

  public object Value { get; private set; }
}

public static class AttachDataExtensions
{
  public static object GetAttachedData(
  this ICustomAttributeProvider provider, object key)
  {
  var attributes = (AttachDataAttribute[])provider.GetCustomAttributes(
  typeof(AttachDataAttribute), false);
  return attributes.First(a => a.Key.Equals(key)).Value;
  }

  public static T GetAttachedData<T>(
  this ICustomAttributeProvider provider, object key)
  {
  return (T)provider.GetAttachedData(key);
  }

  public static object GetAttachedData(this Enum value, object key)
  {
  return value.GetType().GetField(value.ToString()).GetAttachedData(key);
  }

  public static T GetAttachedData<T>(this Enum value, object key)
  {
  return (T)value.GetAttachedData(key);
  }
}
请帮忙给这几行代码加上注释

------解决方案--------------------
百度搜索“C#特性”
------解决方案--------------------
特性,属性,泛型,继承,接口
------解决方案--------------------
自定义特性
------解决方案--------------------
自定义