如何在Attribute中使用自定义属性

骑猪看海 2014-11-03 01:23:12

[AttributeUsage(AttributeTargets.Property, AllowMultiple = false)]
public class AAttribute : Attribute
{
public Int32 A1{ get; set; }
public BB A2 { get; set; }
}
public class BB{
public int B1{get;set;}
public string B1{get;set;}
//其它
}
public class CC{
//这里提示“A2”不是有效的命名特性参数,因为它不是有效的特性参数类型
[AA(A2=null)]
public int b1{get;set;}
}

请问在Attribute中能否使用自定义类属性,应该如何使用?
...全文
323 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
moonwrite 2014-11-03
  • 打赏
  • 举报
回复
如7楼说的 你的A2是自定义的类型BB 可能只能是基础类型 http://msdn.microsoft.com/zh-cn/library/sw480ze8.aspx
骑猪看海 2014-11-03
  • 打赏
  • 举报
回复
引用 7 楼 gxingmin 的回复:
[quote=引用 4 楼 zmcici 的回复:]

public class CC{
         //这里提示“A2”不是有效的命名特性参数,因为它不是有效的特性参数类型
         [A(A2=null)]
         public int b1{get;set;}
    }

我以前一般使用Attribute时,内部属性都是简单的类型,如string,int,bool等,你的A2是个引用的属性,不知道是不是还要加什么限制[/quote] 嗯是的,好像也发现只能是一些系统自带的类型,现在的做法是通过构造函数传入来解决
gxingmin 2014-11-03
  • 打赏
  • 举报
回复
引用 4 楼 zmcici 的回复:

public class CC{
         //这里提示“A2”不是有效的命名特性参数,因为它不是有效的特性参数类型
         [A(A2=null)]
         public int b1{get;set;}
    }

我以前一般使用Attribute时,内部属性都是简单的类型,如string,int,bool等,你的A2是个引用的属性,不知道是不是还要加什么限制
gxingmin 2014-11-03
  • 打赏
  • 举报
回复
引用 5 楼 Z65443344 的回复:
[quote=引用 3 楼 zmcici 的回复:] 手写错误,就算是A也是同样的错
那是因为A也没有定义啊,哪里有A[/quote] A就是AAttribute,后面的Attribute不用写
於黾 2014-11-03
  • 打赏
  • 举报
回复
引用 3 楼 zmcici 的回复:
手写错误,就算是A也是同样的错
那是因为A也没有定义啊,哪里有A
骑猪看海 2014-11-03
  • 打赏
  • 举报
回复

public class CC{
         //这里提示“A2”不是有效的命名特性参数,因为它不是有效的特性参数类型
         [A(A2=null)]
         public int b1{get;set;}
    }

骑猪看海 2014-11-03
  • 打赏
  • 举报
回复
手写错误,就算是A也是同样的错
於黾 2014-11-03
  • 打赏
  • 举报
回复
A又是什么 AA又是什么 根本没定义这个东东好吧
gxingmin 2014-11-03
  • 打赏
  • 举报
回复
是[A(A2=null)] 不是[AA(A2=null)]吧,多写了一个A?

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧