/// <summary> /// Magic methods. Invoking. /// </summary> /// <![CDATA[ /// `name<return_type>()` /// ]]> /// <param name="binder"></param> /// <param name="args"></param> /// <param name="result"></param> /// <returns></returns> public override bool TryInvokeMember(InvokeMemberBinder binder, object[] args, out object result) { if (args?.Length > 0) { throw new ArgumentException("Arguments are not allowed for this method."); } Type[] generic = binder.GetGenericArgTypes().ToArray(); if (generic.Length > 1) { throw new ArgumentException("No more than one type (as a return type) allowed for this method."); } result = getFieldDLR( (generic.Length < 1) ? typeof(DefaultType) : generic[0], binder.Name ); return(true); }