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
在Reflection中,PropertyInfo和FieldInfo有什么区别?
最新推荐文章于 2021-09-10 14:34:19 发布