=======想做个反射的东东,高手过来瞧一瞧

sunjay117 2006-10-12 04:21:50
类似
[KeyField("UserName")]
public String UserName
{
get{return this._UserName;}
set{this._UserName=value;}
}
[DataField("UserPsw")]
public String UserPsw
{
get{return this._UserPsw;}
set{this._UserPsw=value;}
}
如何访问 UserName 是 [KeyField("UserName")] 而UserPsw 是[DataField("UserPsw")]
...全文
267 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
loner84 2006-11-16
  • 打赏
  • 举报
回复
[KeyField("UserName")]
请问这个是做什么用的阿,谢谢哦``
loner84 2006-11-15
  • 打赏
  • 举报
回复
学习中,帮你顶啦
sunjay117 2006-10-12
  • 打赏
  • 举报
回复
我试试 GetProperties 好象无法获取哪个参数
我使用
Model.Game_News dd=new Model.Game_News();
// Type t = dd.GetType();
Type objType = dd.GetType();
PropertyInfo[] objPropertiesArray = objType.GetProperties();
foreach (PropertyInfo objProperty in objPropertiesArray)
{
System.Web.HttpContext.Current.Response.Write(string.Format("{0}={1};type={2}<br>",objProperty.Attributes,objProperty.GetValue(dd,null),objProperty.PropertyType==typeof(int)?true:false));

}
sunjay117 2006-10-12
  • 打赏
  • 举报
回复
我是通过grove的引用 using Grove.ORM 设置的,
另外请问如何能够设置这种自定义的格式
  • 打赏
  • 举报
回复
GetProperties --> GetProperties()
  • 打赏
  • 举报
回复
对于asp.net1.1的,可以这样看;

foreach(PropertyInfo p in theType.GetProperties){
Attribute attr=System.Attribute.GetCusmtomAttribute(p,typeof(KeyField));
if(attr!=null)
....//现在可以知道当前的p准确对应的数据库字段是attr.FieldName的值,可以对p进行处理
  • 打赏
  • 举报
回复
我不知道KeyField是从何而来,假设是自定义的,并且其实例初始化时的那个参数可以通过其实例的FieldName属性读出,那么应用它的代码类似于:

Array.ForEach((PropertyInfo[])theType.GetProperties,delegate(PropertyInfo p){
Attribute attr=System.Attribute.GetCusmtomAttribute(p,typeof(KeyField));
if(attr!=null)
....//现在可以知道当前的p准确对应的数据库字段是attr.FieldName的值,可以对p进行处理
wshuangminlg 2006-10-12
  • 打赏
  • 举报
回复
帮LZ顶
wshuangminlg 2006-10-12
  • 打赏
  • 举报
回复
帮顶
avisnet 2006-10-12
  • 打赏
  • 举报
回复
static void Main()
{
foreach(PropertyInfo pi in typeof(Person).GetProperties())
{
Console.WriteLine(pi.Name);
foreach(Attribute attr in pi.GetCustomAttributes(false))
{
if(attr is KeyFieldAttribute)
{
Console.WriteLine("\tKeyField");
}
else if(attr is DataFieldAttribute)
{
Console.WriteLine("\tDataField");
}
}
}
}
scow 2006-10-12
  • 打赏
  • 举报
回复
假设包含你的属性定义的类为Scan
Type t = typeof(Scan);
PropertyInfo info = t.GetProperty("UserName");

Attribute[] attrs = (Attribute[])info.GetCustomAttributes(typeof(Attribute), false);
for (int i = 0; i < attrs.Length; i++)
{
Console.WriteLine(attrs[i].ToString());
}
zdyguilong 2006-10-12
  • 打赏
  • 举报
回复
xuexi 帮顶
sunjay117 2006-10-12
  • 打赏
  • 举报
回复
是不是帮助里面的,我没有装,搜索也搜索不到,能不能发msdn上的连接
Robert_Wang1983 2006-10-12
  • 打赏
  • 举报
回复
楼上的发的啥意思啊,链接??
真相重于对错 2006-10-12
  • 打赏
  • 举报
回复
ms-help://MS.MSDNQTR.2003FEB.2052/csref/html/vclrfRetrievingAttributeInformation.htm
sunjay117 2006-10-12
  • 打赏
  • 举报
回复
顶一顶也有分,

62,072

社区成员

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

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

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

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