Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- serverconfig.cs
- TextRange.cs
- SmtpReplyReaderFactory.cs
- ListArgumentProvider.cs
- BrowserDefinition.cs
- TextMetrics.cs
- NonClientArea.cs
- FormViewCommandEventArgs.cs
- Helpers.cs
- SerializationAttributes.cs
- CustomBindingCollectionElement.cs
- OdbcCommand.cs
- System.Data_BID.cs
- TextWriterTraceListener.cs
- ColumnHeaderCollectionEditor.cs
- SizeFConverter.cs
- SqlXml.cs
- XomlDesignerLoader.cs
- AesManaged.cs
- FontInfo.cs
- GeneratedCodeAttribute.cs
- EncodingDataItem.cs
- XmlTextEncoder.cs
- DataGridViewCellCollection.cs
- AutoSizeComboBox.cs
- BinaryReader.cs
- Evidence.cs
- QueryCursorEventArgs.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- DynamicContractTypeBuilder.cs
- EmbeddedMailObjectsCollection.cs
- FixedPageProcessor.cs
- BitStack.cs
- NonBatchDirectoryCompiler.cs
- ISCIIEncoding.cs
- DbConnectionPoolCounters.cs
- ALinqExpressionVisitor.cs
- DesigntimeLicenseContextSerializer.cs
- RangeContentEnumerator.cs
- PassportAuthenticationEventArgs.cs
- ControlType.cs
- SchemaNames.cs
- COM2EnumConverter.cs
- BitmapEffectvisualstate.cs
- Debugger.cs
- RegexTree.cs
- UnaryOperationBinder.cs
- NativeMethods.cs
- oledbmetadatacollectionnames.cs
- ApplicationInfo.cs
- TextElementEnumerator.cs
- Parameter.cs
- DeploymentSectionCache.cs
- XmlTextReaderImpl.cs
- ByteAnimationUsingKeyFrames.cs
- XmlText.cs
- SharedStatics.cs
- HttpContext.cs
- Directory.cs
- FaultDesigner.cs
- SqlUserDefinedTypeAttribute.cs
- X509ClientCertificateAuthentication.cs
- MonikerSyntaxException.cs
- TabItemAutomationPeer.cs
- TileBrush.cs
- FormViewModeEventArgs.cs
- ByteStorage.cs
- XmlObjectSerializerWriteContext.cs
- SingleConverter.cs
- CodeRegionDirective.cs
- IndependentlyAnimatedPropertyMetadata.cs
- RSAPKCS1SignatureDeformatter.cs
- HostingEnvironmentException.cs
- Graphics.cs
- PointValueSerializer.cs
- RangeEnumerable.cs
- OneOfElement.cs
- UnsafeNativeMethods.cs
- ChangeTracker.cs
- UnsafeNativeMethods.cs
- XmlNamespaceManager.cs
- HttpModuleCollection.cs
- Cell.cs
- RequestTimeoutManager.cs
- ConnectivityStatus.cs
- BitmapEffectOutputConnector.cs
- SecurityTokenProvider.cs
- CreateUserErrorEventArgs.cs
- VersionConverter.cs
- NamedPipeAppDomainProtocolHandler.cs
- ObjectSet.cs
- HttpListener.cs
- SqlMethodCallConverter.cs
- XmlSerializerNamespaces.cs
- OletxResourceManager.cs
- MouseGesture.cs
- UnsafeNativeMethods.cs
- MissingMemberException.cs
- RadioButtonAutomationPeer.cs
- SystemBrushes.cs