asp.net - tipos - repetir en visual basic
¿Cómo iterar a través de cada propiedad de un objeto vb.net personalizado? (4)
¿Cómo puedo ver cada una de las propiedades en mi objeto personalizado? No es un objeto de colección, pero ¿hay algo como esto para los objetos que no son de colección?
For Each entry as String in myObject
'' Do stuff here...
Next
Hay cadenas, enteros y propiedades booleanas en mi objeto.
Al usar la reflexión puedes hacer eso. En C # se ve así;
PropertyInfo[] propertyInfo = myobject.GetType().GetProperties();
Se agregó una traducción de VB.Net:
Dim info() As PropertyInfo = myobject.GetType().GetProperties()
Puede usar el espacio de nombres System.Reflection para consultar información sobre el tipo de objeto.
For Each p As System.Reflection.PropertyInfo In obj.GetType().GetProperties()
If p.CanRead Then
Console.WriteLine("{0}: {1}", p.Name, p.GetValue(obj, Nothing))
End If
Next
Tenga en cuenta que no se recomienda utilizar este enfoque en lugar de colecciones en su código. La reflexión es una actividad de alto rendimiento y debe usarse con prudencia.
Puede usar la reflexión ... Con Reflection puede examinar a cada miembro de una clase (un Type), professions, métodos, constructores, campos, etc.
using System.Reflection;
Type type = job.GetType();
foreach ( MemberInfo memInfo in type.GetMembers() )
if (memInfo is PropertyInfo)
{
// Do Something
}
System.Reflection es "heavy-weight", siempre implemento un método más ligero primero ...
//DO#
if (item is IEnumerable) {
foreach (object o in item as IEnumerable) {
//do function
}
} else {
foreach (System.Reflection.PropertyInfo p in obj.GetType().GetProperties()) {
if (p.CanRead) {
Console.WriteLine("{0}: {1}", p.Name, p.GetValue(obj, null)); //possible function
}
}
}
''VB.Net
If TypeOf item Is IEnumerable Then
For Each o As Object In TryCast(item, IEnumerable)
''Do Function
Next
Else
For Each p As System.Reflection.PropertyInfo In obj.GetType().GetProperties()
If p.CanRead Then
Console.WriteLine("{0}: {1}", p.Name, p.GetValue(obj, Nothing)) ''possible function
End If
Next
End If