当前位置: 首页>>代码示例>>C#>>正文


C# JsObject.DefineAccessor方法代码示例

本文整理汇总了C#中Jint.Native.JsObject.DefineAccessor方法的典型用法代码示例。如果您正苦于以下问题:C# JsObject.DefineAccessor方法的具体用法?C# JsObject.DefineAccessor怎么用?C# JsObject.DefineAccessor使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Jint.Native.JsObject的用法示例。


在下文中一共展示了JsObject.DefineAccessor方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: DefineProperty

 public void DefineProperty(JsObject @object)
 {
     @object.DefineAccessor(
         Index,
         Getter,
         Setter,
         Attributes
     );
 }
开发者ID:pvginkel,项目名称:Jint2,代码行数:9,代码来源:MarshalAccessorProperty.cs

示例2: ToPropertyDescriptor

            /// <summary>
            /// 8.10.5
            /// </summary>
            private static void ToPropertyDescriptor(JsGlobal global, JsObject owner, string name, object value)
            {
                var @object = value as JsObject;
                if (@object == null)
                    throw new JsException(JsErrorType.TypeError, "The target object has to be an instance of an object");

                if (
                    (@object.HasProperty(Id.value) || @object.HasProperty(Id.writable)) &&
                    (@object.HasProperty(Id.set) || @object.HasProperty(Id.get))
                )
                    throw new JsException(JsErrorType.TypeError, "The property cannot be both writable and have get/set accessors or cannot have both a value and an accessor defined");

                var attributes = PropertyAttributes.None;
                JsObject getFunction = null;
                JsObject setFunction = null;
                object result;

                if (
                    @object.TryGetProperty(Id.enumerable, out result) &&
                    !JsValue.ToBoolean(result)
                )
                    attributes |= PropertyAttributes.DontEnum;

                if (
                    @object.TryGetProperty(Id.configurable, out result) &&
                    !JsValue.ToBoolean(result)
                )
                    attributes |= PropertyAttributes.DontDelete;

                if (
                    @object.TryGetProperty(Id.writable, out result) &&
                    !JsValue.ToBoolean(result)
                )
                    attributes |= PropertyAttributes.ReadOnly;

                if (@object.TryGetProperty(Id.get, out result))
                {
                    if (!JsValue.IsFunction(result))
                        throw new JsException(JsErrorType.TypeError, "The getter has to be a function");

                    getFunction = (JsObject)result;
                }

                if (@object.TryGetProperty(Id.set, out result))
                {
                    if (!JsValue.IsFunction(result))
                        throw new JsException(JsErrorType.TypeError, "The setter has to be a function");

                    setFunction = (JsObject)result;
                }

                if (@object.HasProperty(Id.value))
                {
                    owner.DefineProperty(
                        global.ResolveIdentifier(name),
                        @object.GetProperty(Id.value),
                        PropertyAttributes.None
                    );
                }
                else
                {
                    owner.DefineAccessor(
                        global.ResolveIdentifier(name),
                        getFunction,
                        setFunction,
                        attributes
                    );
                }
            }
开发者ID:pvginkel,项目名称:Jint2,代码行数:72,代码来源:JsGlobal.ObjectFunctions.cs


注:本文中的Jint.Native.JsObject.DefineAccessor方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。