Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / xsp / System / Web / UI / WebControls / Substitution.cs / 1 / Substitution.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.WebControls { using System; using System.ComponentModel; using System.Globalization; using System.Security.Permissions; using System.Web; using System.Web.UI; ////// [ DefaultProperty("MethodName"), Designer("System.Web.UI.Design.WebControls.SubstitutionDesigner, " + AssemblyRef.SystemDesign), ParseChildren(true), PersistChildren(false), ] [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] public class Substitution : Control { ////// /// public Substitution() { } ////// /// [ DefaultValue(""), WebCategory("Behavior"), WebSysDescription(SR.Substitution_MethodNameDescr) ] public virtual string MethodName { get { string s = ViewState["MethodName"] as string; return s == null? String.Empty : s; } set { ViewState["MethodName"] = value; } } protected override ControlCollection CreateControlCollection() { return new EmptyControlCollection(this); } // SECURITY CODE // VSWhidbey 253188: Permission assert to support page running below full trust [ReflectionPermission(SecurityAction.Assert, Flags=ReflectionPermissionFlag.MemberAccess)] private HttpResponseSubstitutionCallback GetDelegate(Type targetType, string methodName) { return (HttpResponseSubstitutionCallback)Delegate.CreateDelegate( typeof(HttpResponseSubstitutionCallback), targetType, methodName); } protected internal override void OnPreRender(EventArgs e) { base.OnPreRender(e); // VSWhidbey 84748: Temp fix, throw if we are within a cached control Control parent = Parent; while (parent != null) { if (parent is BasePartialCachingControl) { throw new HttpException( SR.GetString(SR.Substitution_CannotBeInCachedControl)); } parent = parent.Parent; } } protected internal override void Render(HtmlTextWriter writer) { RenderMarkup(writer); } internal void RenderMarkup(HtmlTextWriter writer) { if (MethodName.Length == 0) { return; } TemplateControl target = TemplateControl; if (target == null) { return; } // get the delegate to the method HttpResponseSubstitutionCallback callback = null; try { callback = GetDelegate(target.GetType(), MethodName); } catch { } if (callback == null) { throw new HttpException( SR.GetString(SR.Substitution_BadMethodName, MethodName)); } // add the substitution to the response Page.Response.WriteSubstitution(callback); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ ///// // Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.WebControls { using System; using System.ComponentModel; using System.Globalization; using System.Security.Permissions; using System.Web; using System.Web.UI; ////// [ DefaultProperty("MethodName"), Designer("System.Web.UI.Design.WebControls.SubstitutionDesigner, " + AssemblyRef.SystemDesign), ParseChildren(true), PersistChildren(false), ] [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] public class Substitution : Control { ////// /// public Substitution() { } ////// /// [ DefaultValue(""), WebCategory("Behavior"), WebSysDescription(SR.Substitution_MethodNameDescr) ] public virtual string MethodName { get { string s = ViewState["MethodName"] as string; return s == null? String.Empty : s; } set { ViewState["MethodName"] = value; } } protected override ControlCollection CreateControlCollection() { return new EmptyControlCollection(this); } // SECURITY CODE // VSWhidbey 253188: Permission assert to support page running below full trust [ReflectionPermission(SecurityAction.Assert, Flags=ReflectionPermissionFlag.MemberAccess)] private HttpResponseSubstitutionCallback GetDelegate(Type targetType, string methodName) { return (HttpResponseSubstitutionCallback)Delegate.CreateDelegate( typeof(HttpResponseSubstitutionCallback), targetType, methodName); } protected internal override void OnPreRender(EventArgs e) { base.OnPreRender(e); // VSWhidbey 84748: Temp fix, throw if we are within a cached control Control parent = Parent; while (parent != null) { if (parent is BasePartialCachingControl) { throw new HttpException( SR.GetString(SR.Substitution_CannotBeInCachedControl)); } parent = parent.Parent; } } protected internal override void Render(HtmlTextWriter writer) { RenderMarkup(writer); } internal void RenderMarkup(HtmlTextWriter writer) { if (MethodName.Length == 0) { return; } TemplateControl target = TemplateControl; if (target == null) { return; } // get the delegate to the method HttpResponseSubstitutionCallback callback = null; try { callback = GetDelegate(target.GetType(), MethodName); } catch { } if (callback == null) { throw new HttpException( SR.GetString(SR.Substitution_BadMethodName, MethodName)); } // add the substitution to the response Page.Response.WriteSubstitution(callback); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.///
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TextRangeEdit.cs
- ReadContentAsBinaryHelper.cs
- PeerNeighborManager.cs
- TextDocumentView.cs
- DynamicDocumentPaginator.cs
- PropertyAccessVisitor.cs
- RouteValueDictionary.cs
- ValueTable.cs
- BufferManager.cs
- HeaderPanel.cs
- XmlUnspecifiedAttribute.cs
- SafeViewOfFileHandle.cs
- ObjectViewQueryResultData.cs
- ProviderIncompatibleException.cs
- EffectiveValueEntry.cs
- CloudCollection.cs
- XmlAnyElementAttribute.cs
- CodeTypeDeclarationCollection.cs
- TreeNodeCollectionEditor.cs
- ReaderWriterLock.cs
- ExpressionTextBox.xaml.cs
- PostBackOptions.cs
- EventWaitHandleSecurity.cs
- RunWorkerCompletedEventArgs.cs
- HandleRef.cs
- SHA384Managed.cs
- NetworkInformationException.cs
- RelatedView.cs
- RMPublishingDialog.cs
- MemberMaps.cs
- NumericUpDown.cs
- ParameterBuilder.cs
- XsdDateTime.cs
- ProviderConnectionPointCollection.cs
- Condition.cs
- EnumConverter.cs
- PolyLineSegment.cs
- WorkflowMarkupSerializationManager.cs
- XamlStream.cs
- Token.cs
- AVElementHelper.cs
- NamedPipeTransportBindingElement.cs
- BitmapCache.cs
- Error.cs
- AdapterDictionary.cs
- StringArrayConverter.cs
- DeclarationUpdate.cs
- SoapSchemaExporter.cs
- CodeIdentifiers.cs
- DebuggerAttributes.cs
- HostProtectionPermission.cs
- storepermission.cs
- SecurityHeader.cs
- SelectionChangedEventArgs.cs
- XmlConverter.cs
- WindowsFont.cs
- StatementContext.cs
- WinFormsUtils.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- FacetDescriptionElement.cs
- DynamicDataRouteHandler.cs
- SafeHandle.cs
- SessionEndingCancelEventArgs.cs
- ExpressionBuilder.cs
- documentsequencetextpointer.cs
- AttributeData.cs
- Utils.cs
- XmlDataContract.cs
- HttpServerVarsCollection.cs
- SolidBrush.cs
- StylusButtonEventArgs.cs
- TextElementEnumerator.cs
- ComponentDispatcher.cs
- XmlSchemaAttribute.cs
- GenericIdentity.cs
- WorkflowDurableInstance.cs
- SortDescription.cs
- WebRequestModulesSection.cs
- ProxyWebPart.cs
- XPathDocumentNavigator.cs
- MultipartContentParser.cs
- DateTimeConverter2.cs
- ValidateNames.cs
- SqlProfileProvider.cs
- LOSFormatter.cs
- EmptyCollection.cs
- PixelFormatConverter.cs
- SerializationEventsCache.cs
- HandlerFactoryWrapper.cs
- ClickablePoint.cs
- TextModifierScope.cs
- FixedSOMImage.cs
- CompareValidator.cs
- ToolStripMenuItemCodeDomSerializer.cs
- FigureParagraph.cs
- Query.cs
- PageTheme.cs
- ViewStateException.cs
- DocumentOrderComparer.cs
- MenuAdapter.cs