在Reflection中,PropertyInfo和FieldInfo有什么区别?
2008-07-03 15:58
204 查看
public class Test
{
public int A;
private int _b;
public int B
{
get
{
return _b;
}
}
}
A就是Field,B就是Property。那么什么是FieldInfo,什么是PropertyInfo应该很显然了。不过呢,二者的确很相似也应该很相似(A,B不也很相似吗):都继承自MemberInfo。
Public Sub CopyEntity(ByRef DestObj As Object, ByRef SrcObj As Object)
Dim type As Type = SrcObj.GetType()
Dim p As PropertyInfo() = type.GetProperties()
Dim i As Integer
For i = 0 To p.Length - 1
p(i).SetValue(DestObj, p(i).GetValue(SrcObj, Nothing), Nothing)
Next
End Sub
Private Function GetCriteria(ByVal fieldName As String) As AddrBookCriteria
Dim criteria As AddrBookCriteria = New AddrBookCriteria()
criteria.COMPCODE = Me.txtCode.Text.Trim
Dim type As Type = criteria.GetType()
Dim field As System.Reflection.FieldInfo = type.GetField(fieldName)
If field Is Nothing Then
Throw New Exception(String.Format("There is not this type[{0}] in the AddrBook", fieldName))
End If
field.SetValue(criteria, True)
Return criteria
End Function
{
public int A;
private int _b;
public int B
{
get
{
return _b;
}
}
}
A就是Field,B就是Property。那么什么是FieldInfo,什么是PropertyInfo应该很显然了。不过呢,二者的确很相似也应该很相似(A,B不也很相似吗):都继承自MemberInfo。
Public Sub CopyEntity(ByRef DestObj As Object, ByRef SrcObj As Object)
Dim type As Type = SrcObj.GetType()
Dim p As PropertyInfo() = type.GetProperties()
Dim i As Integer
For i = 0 To p.Length - 1
p(i).SetValue(DestObj, p(i).GetValue(SrcObj, Nothing), Nothing)
Next
End Sub
Private Function GetCriteria(ByVal fieldName As String) As AddrBookCriteria
Dim criteria As AddrBookCriteria = New AddrBookCriteria()
criteria.COMPCODE = Me.txtCode.Text.Trim
Dim type As Type = criteria.GetType()
Dim field As System.Reflection.FieldInfo = type.GetField(fieldName)
If field Is Nothing Then
Throw New Exception(String.Format("There is not this type[{0}] in the AddrBook", fieldName))
End If
field.SetValue(criteria, True)
Return criteria
End Function
相关文章推荐
- Django模型中的OneToOneField和ForeignKey有什么区别?
- log4j里面的info,debug,error级别有什么区别
- TextBox与TextField有什么区别
- Delphi中的fieldbyname和fieldvalues有什么区别?
- [field:typelink]和[field:typeurl]有什么区别?
- Django模型中的OneToOneField和ForeignKey有什么区别?
- 反射:PropertyInfo、FieldInfo和MemberInfo的区别
- C#文件夹操作-Directory和DirectoryInfo有什么区别
- C#文件操作-File类和FileInfo类有什么区别?
- property和field有什么区别
- OnDraw与OnPaint有什么区别?(转)
- cpu酷睿2双核与奔腾双核有什么区别
- Introspector内省和反射的区别. 什么是Bean,对应的jdk概念有哪些,
- 什么是数据仓库及其与传统型关系数据库的区别
- hibernate 与 ibatis的区别是什么?
- 什么是DOM,DOM level 1\2\3 的区别是什么?
- C语言里,main 函数中 return x和 exit(x) 到底有什么区别 ?
- 文本分类和聚类有什么区别?
- c与java中++有什么区别
- 堆(heap)和堆栈(stack)有什么区别