Here are the examples of the csharp api System.Func.Invoke(object) taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
919 Examples
19
View Source File : FieldInfoHelper.cs
License : zlib License
Project Creator : 0x0ade
License : zlib License
Project Creator : 0x0ade
public override object GetValue(object obj)
=> _OnGetValue?.Invoke(obj);
19
View Source File : Reader.cs
License : MIT License
Project Creator : 0x1000000
License : MIT License
Project Creator : 0x1000000
public void SetCtx(object ctx)
{
this._ctx = ctx;
if (this._ctx != null)
{
this._child?.SetCtx(this._ctx);
if (this._extractor != null)
{
this.SetResult(this._extractor(this._ctx));
}
}
}
19
View Source File : BssoFieldMarshalTest.cs
License : MIT License
Project Creator : 1996v
License : MIT License
Project Creator : 1996v
[Theory]
[MemberData(nameof(ReadBlankTestData))]
public void ReadByIgnoringBlankCharactersTest(object val, Func<object, bool> test)
{
var obj = new byte[3000];
var buf = BssomSerializer.Serialize(obj);
var bsfw = new BssomFieldMarshaller(buf);
bsfw.TryWrite(BssomFieldOffsetInfo.Zero, val).IsTrue();
test(BssomSerializer.Deserialize(buf, 0, out int readSize, val.GetType())).IsTrue();
bsfw.TryWrite(BssomFieldOffsetInfo.Zero, val).IsTrue();
test(BssomSerializer.Deserialize(buf, 0, out readSize, val.GetType())).IsTrue();
}
19
View Source File : TransactionsAdapter.cs
License : MIT License
Project Creator : 2881099
License : MIT License
Project Creator : 2881099
public object[] Exec()
{
if (_redisSocket == null) return new object[0];
try
{
var ret = SelfCall("EXEC") as object[];
var retparsed = new object[ret.Length];
for (var a = 0; a < ret.Length; a++)
{
retparsed[a] = _commands[a].Parse(ret[a]);
#if isasync
_commands[a].TrySetResult(retparsed[a], null); //tryset Async
#endif
}
return retparsed;
}
finally
{
TryReset();
}
}
19
View Source File : CommandPacket.cs
License : MIT License
Project Creator : 2881099
License : MIT License
Project Creator : 2881099
public CommandPacket InputKv(object[] keyValues, bool iskey, Func<object, object> serialize)
{
if (keyValues == null || keyValues.Length == 0) return this;
if (keyValues.Length % 2 != 0) throw new ArgumentException($"Array {nameof(keyValues)} length is not even");
for (var a = 0;a < keyValues.Length; a += 2)
{
if (iskey) InputKey(keyValues[a].ToInvariantCultureToString());
else InputRaw(keyValues[a]);
InputRaw((serialize?.Invoke(keyValues[a + 1]) ?? keyValues[a + 1]));
}
return this;
}
19
View Source File : CommandPacket.cs
License : MIT License
Project Creator : 2881099
License : MIT License
Project Creator : 2881099
public CommandPacket InputKv<T>(Dictionary<string, T> keyValues, bool iskey, Func<object, object> serialize)
{
foreach (var kv in keyValues)
{
if (iskey) InputKey(kv.Key);
else InputRaw(kv.Key);
InputRaw(serialize?.Invoke(kv.Value) ?? kv.Value);
}
return this;
}
19
View Source File : CometaryExtensions.With.cs
License : MIT License
Project Creator : 71
License : MIT License
Project Creator : 71
internal static T Clone<T>(this T obj) where T : clreplaced
{
return (T)CloneCore.Value(obj);
}
19
View Source File : Event.ExecuteEvents.partial.cs
License : MIT License
Project Creator : 7Bytes-Studio
License : MIT License
Project Creator : 7Bytes-Studio
public static IEventHandler[] GetEventHandler(object root)
{
if (null!= s_GetEventHandlersCallback)
{
return s_GetEventHandlersCallback.Invoke(root);
}
return root is IEventHandler ? new IEventHandler[] { root as IEventHandler } : null;
}
19
View Source File : DelegateCommand.cs
License : MIT License
Project Creator : 944095635
License : MIT License
Project Creator : 944095635
public bool CanExecute(object parameter)
{
if (canExecuteFunc == null)
{
return true;
}
return canExecuteFunc(parameter);
}
19
View Source File : Attributes.cs
License : Apache License 2.0
Project Creator : aadreja
License : Apache License 2.0
Project Creator : aadreja
internal bool IsKeyIdEmpty(object enreplacedy, ColumnAttribute pkColumn)
{
return IsKeyFieldEmpty(pkColumn.GetAction(enreplacedy), pkColumn.replacedle);
}
19
View Source File : Attributes.cs
License : Apache License 2.0
Project Creator : aadreja
License : Apache License 2.0
Project Creator : aadreja
internal bool IsKeyIdEmpty(object enreplacedy)
{
if (Columns.Where(p=>p.Value.IsPrimaryKey).Count()==0)
return true;
bool result = false;
foreach (ColumnAttribute c in Columns.Where(p => p.Value.IsPrimaryKey).Select(a=>a.Value))
{
result = IsKeyFieldEmpty(c.GetAction(enreplacedy), c.replacedle);
if (result)
break;
}
return result;
}
19
View Source File : Attributes.cs
License : Apache License 2.0
Project Creator : aadreja
License : Apache License 2.0
Project Creator : aadreja
internal bool IsIdenreplacedyKeyIdEmpty(object enreplacedy)
{
if (Columns.Where(p => p.Value.IsPrimaryKey && p.Value.PrimaryKeyInfo.IsIdenreplacedy).Count() == 0)
return true;
ColumnAttribute pkIdenreplacedyCol = Columns.Where(p => p.Value.IsPrimaryKey && p.Value.PrimaryKeyInfo.IsIdenreplacedy).Select(p=>p.Value).FirstOrDefault();
return IsKeyFieldEmpty(pkIdenreplacedyCol.GetAction(enreplacedy), pkIdenreplacedyCol.replacedle);
}
19
View Source File : Attributes.cs
License : Apache License 2.0
Project Creator : aadreja
License : Apache License 2.0
Project Creator : aadreja
internal bool IsCreatedByEmpty(object enreplacedy)
{
return NoCreatedBy ? false : IsKeyFieldEmpty(Columns[Config.CREATEDBY_COLUMN.Name].GetAction(enreplacedy), "Created By");
}
19
View Source File : Attributes.cs
License : Apache License 2.0
Project Creator : aadreja
License : Apache License 2.0
Project Creator : aadreja
internal bool IsUpdatedByEmpty(object enreplacedy)
{
return NoUpdatedBy ? false : IsKeyFieldEmpty(Columns[Config.UPDATEDBY_COLUMN.Name].GetAction(enreplacedy), "Updated By");
}
19
View Source File : Attributes.cs
License : Apache License 2.0
Project Creator : aadreja
License : Apache License 2.0
Project Creator : aadreja
internal object GetKeyId(object enreplacedy)
{
return PkColumn.GetAction(enreplacedy);
}
19
View Source File : Attributes.cs
License : Apache License 2.0
Project Creator : aadreja
License : Apache License 2.0
Project Creator : aadreja
internal object GetKeyId(object enreplacedy, ColumnAttribute pkColumn)
{
return pkColumn.GetAction(enreplacedy);
}
19
View Source File : Attributes.cs
License : Apache License 2.0
Project Creator : aadreja
License : Apache License 2.0
Project Creator : aadreja
internal object GetCreatedBy(object enreplacedy)
{
return Columns[Config.CreatedByColumnName].GetAction(enreplacedy);
}
19
View Source File : Attributes.cs
License : Apache License 2.0
Project Creator : aadreja
License : Apache License 2.0
Project Creator : aadreja
internal DateTime? GetCreatedOn(object enreplacedy)
{
return (DateTime?)Columns[Config.CreatedOnColumnName].GetAction(enreplacedy);
}
19
View Source File : Attributes.cs
License : Apache License 2.0
Project Creator : aadreja
License : Apache License 2.0
Project Creator : aadreja
internal object GetUpdatedBy(object enreplacedy)
{
return Columns[Config.UpdatedByColumnName].GetAction(enreplacedy);
}
19
View Source File : Attributes.cs
License : Apache License 2.0
Project Creator : aadreja
License : Apache License 2.0
Project Creator : aadreja
internal DateTime? GetUpdatedOn(object enreplacedy)
{
return (DateTime?)Columns[Config.UpdatedOnColumnName].GetAction(enreplacedy);
}
19
View Source File : Attributes.cs
License : Apache License 2.0
Project Creator : aadreja
License : Apache License 2.0
Project Creator : aadreja
internal int? GetVersionNo(object enreplacedy)
{
return (int?)Columns[Config.VersionNoColumnName].GetAction(enreplacedy);
}
19
View Source File : Attributes.cs
License : Apache License 2.0
Project Creator : aadreja
License : Apache License 2.0
Project Creator : aadreja
internal bool? GetIsActive(object enreplacedy)
{
return (bool?)Columns[Config.IsActiveColumnName].GetAction(enreplacedy);
}
19
View Source File : FdbConverters.cs
License : MIT License
Project Creator : abdullin
License : MIT License
Project Creator : abdullin
public static T Unbox<T>(object value)
{
return Idenreplacedy<T>.FromObject(value);
}
19
View Source File : FdbConverters.cs
License : MIT License
Project Creator : abdullin
License : MIT License
Project Creator : abdullin
public object ConvertBoxed(object value)
{
return FromObject(value);
}
19
View Source File : FdbConverters.cs
License : MIT License
Project Creator : abdullin
License : MIT License
Project Creator : abdullin
public object ConvertBoxed(object value)
{
return (object)this.Converter(Idenreplacedy<T>.FromObject(value));
}
19
View Source File : Helpers.cs
License : MIT License
Project Creator : ad313
License : MIT License
Project Creator : ad313
public static Dictionary<string, object> ToDictionary(object obj)
{
var type = obj.GetType();
if (!DictionaryCache.TryGetValue(type, out Func<object, Dictionary<string, object>> getter))
{
getter = CreateDictionaryGenerator(type);
DictionaryCache.TryAdd(type, getter);
}
return getter(obj);
}
19
View Source File : JsonCondition.cs
License : MIT License
Project Creator : Adoxio
License : MIT License
Project Creator : Adoxio
public Condition ToCondition(Func<object, object> deserialize)
{
var condition = new Condition
{
Aggregate = this.Aggregate,
Attribute = this.Attribute,
Alias = this.Alias,
Column = this.Column,
EnreplacedyName = this.EnreplacedyName,
Extensions = this.Extensions,
Operator = this.Operator,
UiHidden = this.UiHidden,
UiName = this.UiName,
UiType = this.UiType,
Value = deserialize(this.Value),
Values = this.Values != null ? this.Values.Select(deserialize).ToList() : null
};
return condition;
}
19
View Source File : SerializationHelper.cs
License : MIT License
Project Creator : AElfProject
License : MIT License
Project Creator : AElfProject
public static byte[] Serialize(object value)
{
if (value == null)
{
return null;
}
var type = value.GetType();
var primitiveSerializer = GetPrimitiveSerializer(type);
if (primitiveSerializer != null)
{
return primitiveSerializer(value);
}
if (type == typeof(string))
{
return Encoding.UTF8.GetBytes((string) value);
}
if (type.IsEnum)
{
return Serialize((int) value);
}
if (typeof(IMessage).IsreplacedignableFrom(type))
{
var v = (IMessage) value;
return v.ToByteArray();
}
throw new InvalidOperationException($"Invalid type {type}.");
}
19
View Source File : IDataExtendChecker.cs
License : Mozilla Public License 2.0
Project Creator : agebullhu
License : Mozilla Public License 2.0
Project Creator : agebullhu
internal static bool PrepareAddnew<T>(T data)
{
foreach (var creaters in Checker)
{
var target = creaters.Value.Convert(data);
if (target == null)
continue;
foreach (var creater in creaters.Value.Dictionary.Values)
{
var checker = creater();
if (!checker.PrepareAddnew(target))
return false;
}
}
return true;
}
19
View Source File : IDataExtendChecker.cs
License : Mozilla Public License 2.0
Project Creator : agebullhu
License : Mozilla Public License 2.0
Project Creator : agebullhu
internal static bool PrepareUpdate<T>(T data)
{
foreach (var creaters in Checker)
{
var target = creaters.Value.Convert(data);
if (target == null)
continue;
foreach (var creater in creaters.Value.Dictionary.Values)
{
var checker = creater();
if (!checker.PrepareUpdate(target))
return false;
}
}
return true;
}
19
View Source File : RedisHelper.cs
License : Mozilla Public License 2.0
Project Creator : agebullhu
License : Mozilla Public License 2.0
Project Creator : agebullhu
public static T CacheShell<T>(string key, int timeoutSeconds, Func<T> getData, Func<T, string> serialize = null, Func<string, T> deserialize = null) =>
Instance.CacheShell(key, timeoutSeconds, getData, serialize ?? new Func<T, string>(value => Serialize(value)), deserialize ?? new Func<string, T>(data => (T) Deserialize(data, typeof(T))));
19
View Source File : RedisHelper.cs
License : Mozilla Public License 2.0
Project Creator : agebullhu
License : Mozilla Public License 2.0
Project Creator : agebullhu
public static T CacheShell<T>(string key, string field, int timeoutSeconds, Func<T> getData, Func<(T, long), string> serialize = null, Func<string, (T, long)> deserialize = null) =>
Instance.CacheShell(key, field, timeoutSeconds, getData, serialize ?? new Func<(T, long), string>(value => Serialize(value)), deserialize ?? new Func<string, (T, long)>(data => ((T, long)) Deserialize(data, typeof((T, long)))));
19
View Source File : RedisHelper.cs
License : Mozilla Public License 2.0
Project Creator : agebullhu
License : Mozilla Public License 2.0
Project Creator : agebullhu
public static T[] CacheShell<T>(string key, string[] fields, int timeoutSeconds, Func<string[], (string, T)[]> getData, Func<(T, long), string> serialize = null, Func<string, (T, long)> deserialize = null) =>
Instance.CacheShell(key, fields, timeoutSeconds, getData, serialize ?? new Func<(T, long), string>(value => Serialize(value)), deserialize ?? new Func<string, (T, long)>(data => ((T, long))Deserialize(data, typeof((T, long)))));
19
View Source File : CollectionEx.cs
License : Mozilla Public License 2.0
Project Creator : agebullhu
License : Mozilla Public License 2.0
Project Creator : agebullhu
public static List<TTarget> ToList<TTarget>(this IEnumerable em, Func<object, TTarget> action, bool keepNull = true)
{
var results = new List<TTarget>();
if (em == null)
{
return results;
}
if (keepNull)
{
foreach (var t in em)
{
if (!Equals(t, null))
results.Add(action(t));
}
}
else
{
foreach (var t in em)
{
results.Add(action(t));
}
}
return results;
}
19
View Source File : CSRedisClientPipe.cs
License : Mozilla Public License 2.0
Project Creator : agebullhu
License : Mozilla Public License 2.0
Project Creator : agebullhu
public object[] EndPipe() {
var ret = new object[Parsers.Count];
foreach (var conn in Conns) {
object[] tmp = null;
try {
tmp = conn.Value.conn.Client.EndPipe();
} catch (Exception ex) {
conn.Value.conn.Pool.RequirePing(ex);
throw ex;
} finally {
conn.Value.conn.Pool.ReleaseConnection(conn.Value.conn);
}
for (var a = 0; a < tmp.Length; a++) {
var retIdx = conn.Value.indexes[a];
ret[retIdx] = tmp[a];
}
}
for (var b = 0; b < ret.Length; b++) {
var parse = Parsers.Dequeue();
if (parse != null) ret[b] = parse(ret[b]);
}
Conns.Clear();
return ret;
}
19
View Source File : CollectionEx.cs
License : Mozilla Public License 2.0
Project Creator : agebullhu
License : Mozilla Public License 2.0
Project Creator : agebullhu
public static IEnumerable<T> Select2<T>(this IEnumerable source, Func<object, T> convert)
{
if (source == null)
{
return new List<T>();
}
if (source is List<T> enreplacedyList)
{
return enreplacedyList;
}
var list = new List<T>();
foreach (var t in source)
{
list.Add(convert(t));
}
return list;
}
19
View Source File : CollectionEx.cs
License : Mozilla Public License 2.0
Project Creator : agebullhu
License : Mozilla Public License 2.0
Project Creator : agebullhu
public static string ListToString(this IEnumerable em, Func<object, string> fmt, string sp = ",", string head = null, string food = null)
{
if (em == null)
{
return null;
}
var sb = new StringBuilder();
if (head != null)
{
sb.Append(head);
}
var first = true;
foreach (var v in em)
{
if (v == null)
{
continue;
}
if (v is string && string.IsNullOrWhiteSpace(v as string))
{
continue;
}
if (first)
{
first = false;
}
else
{
sb.Append(sp);
}
sb.Append(fmt(v));
}
if (first)
return null;
if (food != null)
{
sb.Append(food);
}
return sb.ToString();
}
19
View Source File : CollectionEx.cs
License : Mozilla Public License 2.0
Project Creator : agebullhu
License : Mozilla Public License 2.0
Project Creator : agebullhu
public static List<TTarget> Foreach<TTarget, TSource>(this IEnumerable<TSource> em, Func<object, TTarget> action, bool keepNull = true)
{
var results = new List<TTarget>();
if (em == null)
{
return results;
}
if (keepNull)
{
foreach (var t in em.Where(p => !Equals(p, default(TSource))))
{
results.Add(action(t));
}
}
else
{
foreach (var t in em)
{
results.Add(action(t));
}
}
return results;
}
19
View Source File : TreeItemBase.cs
License : Mozilla Public License 2.0
Project Creator : agebullhu
License : Mozilla Public License 2.0
Project Creator : agebullhu
public TreeItem CreateChild(object value)
{
var item = CreateChildFunc(value);
var extend = value as IExtendDependencyObjects;
extend?.Dependency.Annex(item);
return item;
}
19
View Source File : BaseCommand.cs
License : MIT License
Project Creator : aishang2015
License : MIT License
Project Creator : aishang2015
public bool CanExecute(object parameter)
{
if (_canExecute == null) return true;
return _canExecute(parameter);
}
19
View Source File : DefaultContractResolver.cs
License : MIT License
Project Creator : akaskela
License : MIT License
Project Creator : akaskela
private void SetIsSpecifiedActions(JsonProperty property, MemberInfo member, bool allowNonPublicAccess)
{
MemberInfo specifiedMember = member.DeclaringType.GetProperty(member.Name + JsonTypeReflector.SpecifiedPostfix);
if (specifiedMember == null)
{
specifiedMember = member.DeclaringType.GetField(member.Name + JsonTypeReflector.SpecifiedPostfix);
}
if (specifiedMember == null || ReflectionUtils.GetMemberUnderlyingType(specifiedMember) != typeof(bool))
{
return;
}
Func<object, object> specifiedPropertyGet = JsonTypeReflector.ReflectionDelegateFactory.CreateGet<object>(specifiedMember);
property.GetIsSpecified = o => (bool)specifiedPropertyGet(o);
if (ReflectionUtils.CanSetMemberValue(specifiedMember, allowNonPublicAccess, false))
{
property.SetIsSpecified = JsonTypeReflector.ReflectionDelegateFactory.CreateSet<object>(specifiedMember);
}
}
19
View Source File : DefaultContractResolver.cs
License : MIT License
Project Creator : akaskela
License : MIT License
Project Creator : akaskela
private static void SetExtensionDataDelegates(JsonObjectContract contract, MemberInfo member)
{
JsonExtensionDataAttribute extensionDataAttribute = ReflectionUtils.GetAttribute<JsonExtensionDataAttribute>(member);
if (extensionDataAttribute == null)
{
return;
}
Type t = ReflectionUtils.GetMemberUnderlyingType(member);
Type dictionaryType;
ReflectionUtils.ImplementsGenericDefinition(t, typeof(IDictionary<,>), out dictionaryType);
Type keyType = dictionaryType.GetGenericArguments()[0];
Type valueType = dictionaryType.GetGenericArguments()[1];
Type createdType;
// change type to a clreplaced if it is the base interface so it can be instantiated if needed
if (ReflectionUtils.IsGenericDefinition(t, typeof(IDictionary<,>)))
{
createdType = typeof(Dictionary<,>).MakeGenericType(keyType, valueType);
}
else
{
createdType = t;
}
Func<object, object> getExtensionDataDictionary = JsonTypeReflector.ReflectionDelegateFactory.CreateGet<object>(member);
if (extensionDataAttribute.ReadData)
{
Action<object, object> setExtensionDataDictionary = (ReflectionUtils.CanSetMemberValue(member, true, false))
? JsonTypeReflector.ReflectionDelegateFactory.CreateSet<object>(member)
: null;
Func<object> createExtensionDataDictionary = JsonTypeReflector.ReflectionDelegateFactory.CreateDefaultConstructor<object>(createdType);
MethodInfo addMethod = t.GetMethod("Add", new[] { keyType, valueType });
MethodCall<object, object> setExtensionDataDictionaryValue = JsonTypeReflector.ReflectionDelegateFactory.CreateMethodCall<object>(addMethod);
ExtensionDataSetter extensionDataSetter = (o, key, value) =>
{
object dictionary = getExtensionDataDictionary(o);
if (dictionary == null)
{
if (setExtensionDataDictionary == null)
{
throw new JsonSerializationException("Cannot set value onto extension data member '{0}'. The extension data collection is null and it cannot be set.".FormatWith(CultureInfo.InvariantCulture, member.Name));
}
dictionary = createExtensionDataDictionary();
setExtensionDataDictionary(o, dictionary);
}
setExtensionDataDictionaryValue(dictionary, key, value);
};
contract.ExtensionDataSetter = extensionDataSetter;
}
if (extensionDataAttribute.WriteData)
{
Type enumerableWrapper = typeof(EnumerableDictionaryWrapper<,>).MakeGenericType(keyType, valueType);
ConstructorInfo constructors = enumerableWrapper.GetConstructors().First();
ObjectConstructor<object> createEnumerableWrapper = JsonTypeReflector.ReflectionDelegateFactory.CreateParameterizedConstructor(constructors);
ExtensionDataGetter extensionDataGetter = o =>
{
object dictionary = getExtensionDataDictionary(o);
if (dictionary == null)
{
return null;
}
return (IEnumerable<KeyValuePair<object, object>>)createEnumerableWrapper(dictionary);
};
contract.ExtensionDataGetter = extensionDataGetter;
}
contract.ExtensionDataValueType = valueType;
}
19
View Source File : ReflectionObject.cs
License : MIT License
Project Creator : akaskela
License : MIT License
Project Creator : akaskela
public object GetValue(object target, string member)
{
Func<object, object> getter = Members[member].Getter;
return getter(target);
}
19
View Source File : DynamicValueProvider.cs
License : MIT License
Project Creator : akaskela
License : MIT License
Project Creator : akaskela
public object GetValue(object target)
{
try
{
if (_getter == null)
{
_getter = DynamicReflectionDelegateFactory.Instance.CreateGet<object>(_memberInfo);
}
return _getter(target);
}
catch (Exception ex)
{
throw new JsonSerializationException("Error getting value from '{0}' on '{1}'.".FormatWith(CultureInfo.InvariantCulture, _memberInfo.Name, target.GetType()), ex);
}
}
19
View Source File : ExpressionValueProvider.cs
License : MIT License
Project Creator : akaskela
License : MIT License
Project Creator : akaskela
public object GetValue(object target)
{
try
{
if (_getter == null)
{
_getter = ExpressionReflectionDelegateFactory.Instance.CreateGet<object>(_memberInfo);
}
return _getter(target);
}
catch (Exception ex)
{
throw new JsonSerializationException("Error getting value from '{0}' on '{1}'.".FormatWith(CultureInfo.InvariantCulture, _memberInfo.Name, target.GetType()), ex);
}
}
19
View Source File : ConvertUtils.cs
License : MIT License
Project Creator : akaskela
License : MIT License
Project Creator : akaskela
private static object EnsureTypereplacedignable(object value, Type initialType, Type targetType)
{
Type valueType = (value != null) ? value.GetType() : null;
if (value != null)
{
if (targetType.IsreplacedignableFrom(valueType))
{
return value;
}
Func<object, object> castConverter = CastConverters.Get(new TypeConvertKey(valueType, targetType));
if (castConverter != null)
{
return castConverter(value);
}
}
else
{
if (ReflectionUtils.IsNullable(targetType))
{
return null;
}
}
throw new ArgumentException("Could not cast or convert from {0} to {1}.".FormatWith(CultureInfo.InvariantCulture, (initialType != null) ? initialType.ToString() : "{null}", targetType));
}
19
View Source File : Uncapsulator.cs
License : MIT License
Project Creator : albahari
License : MIT License
Project Creator : albahari
public object GetValue (object instance)
{
if (_fastGetter == null)
{
if (MemberInfo is FieldInfo fi && fi.IsStatic)
return fi.GetValue (null);
// In .NET Framework, we get a TypeAccessException when trying to access this via Reflection.Emit
else if (MemberInfo is PropertyInfo pi && ((pi.GetMethod?.IsStatic ?? true) || IsDotNetFramework && pi.DeclaringType.IsInterface))
return pi.GetValue (instance, null);
else
// Optimize the common case of getting a field or property.
_fastGetter = MemberInfo is FieldInfo fi2
? TypeUtil.GenDynamicField (fi2)
: TypeUtil.GenDynamicProp ((PropertyInfo)MemberInfo);
}
return _fastGetter (instance);
}
19
View Source File : FieldAccessor.cs
License : MIT License
Project Creator : albyho
License : MIT License
Project Creator : albyho
public object GetValue(object instance)
{
return _getter(instance);
}
19
View Source File : PropertyAccessor.cs
License : MIT License
Project Creator : albyho
License : MIT License
Project Creator : albyho
public object GetValue(object o)
{
if (_getter == null)
{
throw new NotSupportedException("Get method is not defined for this property.");
}
return _getter(o);
}
19
View Source File : TypeAdapter.cs
License : MIT License
Project Creator : alelievr
License : MIT License
Project Creator : alelievr
public static object Convert(object from, Type targetType)
{
if (!adaptersLoaded)
LoadAllAdapters();
Func<object, object> convertionFunction;
if (adapters.TryGetValue((from.GetType(), targetType), out convertionFunction))
return convertionFunction?.Invoke(from);
return null;
}
See More Examples