Initial Commit
This commit is contained in:
parent
53eb92e9af
commit
270ab7d11f
15341 changed files with 700234 additions and 0 deletions
|
@ -0,0 +1,55 @@
|
|||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
namespace UnityEngine.UI.Tests
|
||||
{
|
||||
class PrivateFieldSetter<T> : IDisposable
|
||||
{
|
||||
private object m_Obj;
|
||||
private FieldInfo m_FieldInfo;
|
||||
private object m_OldValue;
|
||||
|
||||
public PrivateFieldSetter(object obj, string field, object value)
|
||||
{
|
||||
m_Obj = obj;
|
||||
m_FieldInfo = typeof(T).GetField(field, BindingFlags.NonPublic | BindingFlags.Instance);
|
||||
m_OldValue = m_FieldInfo.GetValue(obj);
|
||||
m_FieldInfo.SetValue(obj, value);
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
m_FieldInfo.SetValue(m_Obj, m_OldValue);
|
||||
}
|
||||
}
|
||||
|
||||
static class PrivateStaticField
|
||||
{
|
||||
public static T GetValue<T>(Type staticType, string fieldName)
|
||||
{
|
||||
var type = staticType;
|
||||
FieldInfo field = null;
|
||||
while (field == null && type != null)
|
||||
{
|
||||
field = type.GetField(fieldName, BindingFlags.Static | BindingFlags.NonPublic);
|
||||
type = type.BaseType;
|
||||
}
|
||||
return (T)field.GetValue(null);
|
||||
}
|
||||
}
|
||||
|
||||
static class PrivateField
|
||||
{
|
||||
public static T GetValue<T>(this object o, string fieldName)
|
||||
{
|
||||
var type = o.GetType();
|
||||
FieldInfo field = null;
|
||||
while (field == null && type != null)
|
||||
{
|
||||
field = type.GetField(fieldName, BindingFlags.Instance | BindingFlags.NonPublic);
|
||||
type = type.BaseType;
|
||||
}
|
||||
return field != null ? (T)field.GetValue(o) : default(T);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue