Example #1
0
        public void SetIsOpenType(string resourceTypeName, bool value)
        {
            NonClrContext context = (NonClrContext)this.CurrentDataSource;
            ResourceType  type;

            CallOrder.APICallLog.Current.Push();
            try
            {
                if (!context.TryResolveResourceType(resourceTypeName, out type))
                {
                    throw new DataServiceException(500, "Could not find type '" + resourceTypeName + "'");
                }
            }
            finally
            {
                CallOrder.APICallLog.Current.Pop();
            }

            if (!type.IsReadOnly)
            {
                type.IsOpenType = value;
            }
            else
            {
                FieldInfo field = type.GetType().GetField("isOpenType", BindingFlags.NonPublic | BindingFlags.Instance);
                field.SetValue(type, value);
            }
        }