Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / 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);
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- IconHelper.cs
- HtmlInputHidden.cs
- CustomAttributeBuilder.cs
- MissingSatelliteAssemblyException.cs
- PropertyGridView.cs
- StrokeIntersection.cs
- XmlDataSource.cs
- NestedContainer.cs
- List.cs
- RelationshipNavigation.cs
- XmlRawWriterWrapper.cs
- ViewStateModeByIdAttribute.cs
- PartialToken.cs
- Quad.cs
- FileUtil.cs
- DependencyPropertyKind.cs
- Ref.cs
- MinimizableAttributeTypeConverter.cs
- SimpleRecyclingCache.cs
- NumberSubstitution.cs
- AnonymousIdentificationSection.cs
- ScopeCompiler.cs
- BookmarkTable.cs
- ExpressionVisitor.cs
- ObjectContext.cs
- PrivateFontCollection.cs
- WebHostedComPlusServiceHost.cs
- Type.cs
- ErrorTableItemStyle.cs
- PngBitmapDecoder.cs
- WebScriptServiceHost.cs
- MatcherBuilder.cs
- XmlSchemaSimpleTypeUnion.cs
- ProfileSection.cs
- TickBar.cs
- SQLDoubleStorage.cs
- ClientProxyGenerator.cs
- StatusBarPanelClickEvent.cs
- MetadataWorkspace.cs
- UnicodeEncoding.cs
- MultipartContentParser.cs
- DispatcherSynchronizationContext.cs
- DataGridViewCellCancelEventArgs.cs
- OracleDateTime.cs
- GridViewDeletedEventArgs.cs
- QueryStack.cs
- ComponentSerializationService.cs
- TimeStampChecker.cs
- SwitchAttribute.cs
- GridViewSelectEventArgs.cs
- DataGrid.cs
- ContainerUtilities.cs
- KnownBoxes.cs
- Solver.cs
- LinqDataSourceView.cs
- DbConnectionClosed.cs
- FeatureSupport.cs
- NativeMethods.cs
- BitmapVisualManager.cs
- CodeVariableReferenceExpression.cs
- TargetPerspective.cs
- TypedLocationWrapper.cs
- HttpFileCollection.cs
- WebPartPersonalization.cs
- DomainUpDown.cs
- ResourcePool.cs
- SHA1.cs
- SpellCheck.cs
- FontSizeConverter.cs
- TypeDescriptionProviderAttribute.cs
- XPathAncestorIterator.cs
- _AcceptOverlappedAsyncResult.cs
- SqlServices.cs
- XsdValidatingReader.cs
- ComMethodElement.cs
- MailAddressCollection.cs
- TextContainer.cs
- ListItemCollection.cs
- PtsHost.cs
- ForwardPositionQuery.cs
- listitem.cs
- CodeAttributeArgumentCollection.cs
- _UriTypeConverter.cs
- WebPartEventArgs.cs
- WebServiceData.cs
- MetabaseServerConfig.cs
- SafeCryptoHandles.cs
- EventWaitHandle.cs
- SrgsGrammarCompiler.cs
- X509CertificateClaimSet.cs
- hresults.cs
- HtmlGenericControl.cs
- XmlSchema.cs
- ScaleTransform3D.cs
- SqlBuilder.cs
- COM2PropertyPageUITypeConverter.cs
- Formatter.cs
- SByteStorage.cs
- ResourceBinder.cs
- LayoutTableCell.cs