Commit 0a949f73 authored by Marc Gravell's avatar Marc Gravell
parents e414149f 1ca9c1a0
...@@ -1236,6 +1236,7 @@ internal int AddField(string name) ...@@ -1236,6 +1236,7 @@ internal int AddField(string name)
if (fieldNameLookup.ContainsKey(name)) throw new InvalidOperationException("Field already exists: " + name); if (fieldNameLookup.ContainsKey(name)) throw new InvalidOperationException("Field already exists: " + name);
int oldLen = fieldNames.Length; int oldLen = fieldNames.Length;
Array.Resize(ref fieldNames, oldLen + 1); // yes, this is sub-optimal, but this is not the expected common case Array.Resize(ref fieldNames, oldLen + 1); // yes, this is sub-optimal, but this is not the expected common case
fieldNames[oldLen] = name;
fieldNameLookup[name] = oldLen; fieldNameLookup[name] = oldLen;
return oldLen; return oldLen;
} }
...@@ -1298,6 +1299,19 @@ public override System.Dynamic.DynamicMetaObject BindGetMember(System.Dynamic.Ge ...@@ -1298,6 +1299,19 @@ public override System.Dynamic.DynamicMetaObject BindGetMember(System.Dynamic.Ge
return callMethod; return callMethod;
} }
// Needed for Visual basic dynamic support
public override System.Dynamic.DynamicMetaObject BindInvokeMember(System.Dynamic.InvokeMemberBinder binder, System.Dynamic.DynamicMetaObject[] args)
{
var parameters = new System.Linq.Expressions.Expression[]
{
System.Linq.Expressions.Expression.Constant(binder.Name)
};
var callMethod = CallMethod(getValueMethod, parameters);
return callMethod;
}
public override System.Dynamic.DynamicMetaObject BindSetMember(System.Dynamic.SetMemberBinder binder, System.Dynamic.DynamicMetaObject value) public override System.Dynamic.DynamicMetaObject BindSetMember(System.Dynamic.SetMemberBinder binder, System.Dynamic.DynamicMetaObject value)
{ {
var parameters = new System.Linq.Expressions.Expression[] var parameters = new System.Linq.Expressions.Expression[]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment