Castle.MonoRail.Views.Brail.ExpandDuckTypedExpressions_WorkaroundForDuplicateVirtualMethods.SelectSliceMember C# (CSharp) Méthode

SelectSliceMember() private static méthode

private static SelectSliceMember ( MemberInfo found, object &args, SetOrGet sliceKind ) : MemberInfo
found System.Reflection.MemberInfo
args object
sliceKind SetOrGet
Résultat System.Reflection.MemberInfo
		private static MemberInfo SelectSliceMember(MemberInfo[] found, ref object[] args, SetOrGet sliceKind)
		{
			if (1 == found.Length) return found[0];
			MethodBase[] candidates = new MethodBase[found.Length];
			for(int i = 0; i < found.Length; ++i)
			{
				MemberInfo member = found[i];
				PropertyInfo property = member as PropertyInfo;
				if (null == property) MemberNotSupported(member);
				MethodInfo method = sliceKind == SetOrGet.Get ? GetGetMethod(property) : GetSetMethod(property);
				candidates[i] = method;
			}
			object state = null;
			return
				Type.DefaultBinder.BindToMethod(DefaultBindingFlags | BindingFlags.OptionalParamBinding, candidates, ref args, null,
				                                null, null, out state);
		}