📄 reflectionhelper.cs
字号:
namespace Imps.Utils
{
using System;
using System.Reflection;
public static class ReflectionHelper
{
public static void ClearAllEvents(object objectHasEvents)
{
if (objectHasEvents != null)
{
EventInfo[] events = objectHasEvents.GetType().GetEvents(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);
if ((events != null) && (events.Length >= 1))
{
for (int i = 0; i < events.Length; i++)
{
try
{
EventInfo info = events[i];
FieldInfo field = info.DeclaringType.GetField(info.Name, BindingFlags.NonPublic | BindingFlags.Instance);
if (field != null)
{
field.SetValue(objectHasEvents, null);
}
}
catch
{
}
}
}
}
}
public static T GetDefaultValue<T>()
{
T objA = default(T);
if (object.Equals(objA, null))
{
Type type = typeof(T);
FieldInfo field = type.GetField("Empty", BindingFlags.GetField | BindingFlags.Public | BindingFlags.Static);
if ((field != null) && (field.FieldType == type))
{
return (T) field.GetValue(null);
}
ConstructorInfo constructor = type.GetConstructor(Type.EmptyTypes);
if (constructor != null)
{
objA = (T) constructor.Invoke(null);
}
}
return objA;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -