示例#1
0
        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));
        }
示例#2
0
 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);
     }
 }
示例#3
0
文件: Sympl.cs 项目: TerabyteX/main
 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;
     }
 }