public override bool Equals(object obj) { InvokeMemberBinderKey key = obj as InvokeMemberBinderKey; // Don't lower the name. Sympl is case-preserving in the metadata // in case some DynamicMetaObject ignores ignoreCase. This makes // some interop cases work, but the cost is that if a Sympl program // spells ".foo" and ".Foo" at different sites, they won't share rules. return(key != null && key._name == _name && key._info.Equals(_info)); }
public SymplInvokeMemberBinder GetInvokeMemberBinder (InvokeMemberBinderKey info) { lock (_invokeMemberBinders) { if (_invokeMemberBinders.ContainsKey(info)) { return(_invokeMemberBinders[info]); } var b = new SymplInvokeMemberBinder(info.Name, info.Info); _invokeMemberBinders[info] = b; return(b); } }
public SymplInvokeMemberBinder GetInvokeMemberBinder (InvokeMemberBinderKey info) { lock (_invokeMemberBinders) { if (_invokeMemberBinders.ContainsKey(info)) return _invokeMemberBinders[info]; var b = new SymplInvokeMemberBinder(info.Name, info.Info); _invokeMemberBinders[info] = b; return b; } }