public TryInvokeMember ( |
||
binder | ||
args | object | |
result | object | |
return | bool |
public override bool TryInvokeMember(InvokeMemberBinder binder, object[] args, out object result)
{
switch (binder.Name.ToLower())
{
case "load":
case "get":
{
if (args.Length != 1)
{
throw new ArgumentException("Get/Load should have 1 parameter, 1:Id");
}
HandleLoad(args, out result);
return true;
}
case "insert":
{
if (args.Length != 2)
{
throw new ArgumentException("Insert should have 2 parameters, 1:ObjectToStore, 2:Id");
}
return HandleInsert(args, out result);
}
case "all":
{
result = Session.Advanced.LuceneQuery<dynamic>()
.WhereEquals("@metadata.Raven-Entity-Name", CollectionName)
.ToList();
return true;
}
}
throw new MissingMethodException("Method {0} does not exist. Allowed methods are: Get/Load, Insert, All");
}