IronPython.Runtime.Types.ReflectedEvent.TrySetValue C# (CSharp) Method

TrySetValue() private method

private TrySetValue ( CodeContext context, object instance, IronPython.Runtime.Types.PythonType owner, object value ) : bool
context CodeContext
instance object
owner IronPython.Runtime.Types.PythonType
value object
return bool
        internal override bool TrySetValue(CodeContext/*!*/ context, object instance, PythonType owner, object value) {
            Assert.NotNull(context);
            BoundEvent et = value as BoundEvent;

            if (et == null || EventInfosDiffer(et)) {
                BadEventChange bea = value as BadEventChange;

                if (bea != null) {
                    PythonType dt = bea.Owner as PythonType;
                    if (dt != null) {
                        if (bea.Instance == null) {
                            throw new MissingMemberException(String.Format("attribute '{1}' of '{0}' object is read-only", dt.Name, _tracker.Name));
                        } else {
                            throw new MissingMemberException(String.Format("'{0}' object has no attribute '{1}'", dt.Name, _tracker.Name));
                        }
                    }
                }

                throw ReadOnlyException(DynamicHelpers.GetPythonTypeFromType(Info.DeclaringType));
            }

            return true;
        }