Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / UI / SimplePropertyEntry.cs / 1305376 / SimplePropertyEntry.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI {
using System.CodeDom;
using System.Web.Compilation;
using Debug=System.Web.Util.Debug;
///
/// PropertyEntry for simple attributes
///
public class SimplePropertyEntry : PropertyEntry {
private string _persistedValue;
private bool _useSetAttribute;
private object _value;
internal SimplePropertyEntry() {
}
///
///
//
public string PersistedValue {
get {
return _persistedValue;
}
set {
_persistedValue = value;
}
}
///
///
public bool UseSetAttribute {
get {
return _useSetAttribute;
}
set {
_useSetAttribute = value;
}
}
///
///
public object Value {
get {
return _value;
}
set {
_value = value;
}
}
// Build the statement that assigns this property
internal CodeStatement GetCodeStatement(BaseTemplateCodeDomTreeGenerator generator,
CodeExpression ctrlRefExpr) {
// If we don't have a type, use IAttributeAccessor.SetAttribute
if (UseSetAttribute) {
// e.g. ((IAttributeAccessor)__ctrl).SetAttribute("{{_name}}", "{{_value}}");
CodeMethodInvokeExpression methCallExpression = new CodeMethodInvokeExpression(
new CodeCastExpression(typeof(IAttributeAccessor), ctrlRefExpr),
"SetAttribute");
methCallExpression.Parameters.Add(new CodePrimitiveExpression(Name));
methCallExpression.Parameters.Add(new CodePrimitiveExpression(Value));
return new CodeExpressionStatement(methCallExpression);
}
CodeExpression leftExpr, rightExpr = null;
if (PropertyInfo != null) {
leftExpr = CodeDomUtility.BuildPropertyReferenceExpression(ctrlRefExpr, Name);
}
else {
// In case of a field, there should only be one (unlike properties)
Debug.Assert(Name.IndexOf('.') < 0, "_name.IndexOf('.') < 0");
leftExpr = new CodeFieldReferenceExpression(ctrlRefExpr, Name);
}
if (Type == typeof(string)) {
rightExpr = generator.BuildStringPropertyExpression(this);
}
else {
rightExpr = CodeDomUtility.GenerateExpressionForValue(PropertyInfo, Value, Type);
}
// Now that we have both side, add the assignment
return new CodeAssignStatement(leftExpr, rightExpr);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI {
using System.CodeDom;
using System.Web.Compilation;
using Debug=System.Web.Util.Debug;
///
/// PropertyEntry for simple attributes
///
public class SimplePropertyEntry : PropertyEntry {
private string _persistedValue;
private bool _useSetAttribute;
private object _value;
internal SimplePropertyEntry() {
}
///
///
//
public string PersistedValue {
get {
return _persistedValue;
}
set {
_persistedValue = value;
}
}
///
///
public bool UseSetAttribute {
get {
return _useSetAttribute;
}
set {
_useSetAttribute = value;
}
}
///
///
public object Value {
get {
return _value;
}
set {
_value = value;
}
}
// Build the statement that assigns this property
internal CodeStatement GetCodeStatement(BaseTemplateCodeDomTreeGenerator generator,
CodeExpression ctrlRefExpr) {
// If we don't have a type, use IAttributeAccessor.SetAttribute
if (UseSetAttribute) {
// e.g. ((IAttributeAccessor)__ctrl).SetAttribute("{{_name}}", "{{_value}}");
CodeMethodInvokeExpression methCallExpression = new CodeMethodInvokeExpression(
new CodeCastExpression(typeof(IAttributeAccessor), ctrlRefExpr),
"SetAttribute");
methCallExpression.Parameters.Add(new CodePrimitiveExpression(Name));
methCallExpression.Parameters.Add(new CodePrimitiveExpression(Value));
return new CodeExpressionStatement(methCallExpression);
}
CodeExpression leftExpr, rightExpr = null;
if (PropertyInfo != null) {
leftExpr = CodeDomUtility.BuildPropertyReferenceExpression(ctrlRefExpr, Name);
}
else {
// In case of a field, there should only be one (unlike properties)
Debug.Assert(Name.IndexOf('.') < 0, "_name.IndexOf('.') < 0");
leftExpr = new CodeFieldReferenceExpression(ctrlRefExpr, Name);
}
if (Type == typeof(string)) {
rightExpr = generator.BuildStringPropertyExpression(this);
}
else {
rightExpr = CodeDomUtility.GenerateExpressionForValue(PropertyInfo, Value, Type);
}
// Now that we have both side, add the assignment
return new CodeAssignStatement(leftExpr, rightExpr);
}
}
}
// 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
- KeyValueSerializer.cs
- ValidatedControlConverter.cs
- IPEndPointCollection.cs
- ToolStripPanel.cs
- WebEventTraceProvider.cs
- JsonWriter.cs
- LoadRetryConstantStrategy.cs
- ReliableMessagingHelpers.cs
- SchemaImporterExtensionElement.cs
- PTConverter.cs
- CryptoProvider.cs
- RenderData.cs
- WrappedIUnknown.cs
- xmlfixedPageInfo.cs
- ConnectionConsumerAttribute.cs
- TransformPattern.cs
- ThousandthOfEmRealPoints.cs
- XmlNodeList.cs
- TransformDescriptor.cs
- SchemaCollectionCompiler.cs
- InplaceBitmapMetadataWriter.cs
- SafeWaitHandle.cs
- XmlILIndex.cs
- RotateTransform.cs
- RenderDataDrawingContext.cs
- SequenceNumber.cs
- ClassHandlersStore.cs
- MdiWindowListItemConverter.cs
- EntityDataSourceDesignerHelper.cs
- SettingsPropertyCollection.cs
- RepeaterCommandEventArgs.cs
- CallContext.cs
- FontResourceCache.cs
- CodeCompiler.cs
- FileDialog_Vista.cs
- TextTreeTextElementNode.cs
- TemplateBamlTreeBuilder.cs
- RuntimeHandles.cs
- CodeIdentifier.cs
- DataRowCollection.cs
- ObjectManager.cs
- OdbcStatementHandle.cs
- WebUtil.cs
- CacheAxisQuery.cs
- ValidationManager.cs
- VisualCollection.cs
- StructureChangedEventArgs.cs
- TypeDescriptionProvider.cs
- DesignerLinkAdapter.cs
- Exception.cs
- HttpResponseWrapper.cs
- ASCIIEncoding.cs
- ApplicationTrust.cs
- BlurEffect.cs
- TextEndOfSegment.cs
- SqlTypesSchemaImporter.cs
- BufferedGraphicsContext.cs
- SecUtil.cs
- RuleRefElement.cs
- PrinterResolution.cs
- SrgsGrammarCompiler.cs
- SchemaMapping.cs
- BaseProcessor.cs
- OneWayBindingElementImporter.cs
- RoleGroup.cs
- CuspData.cs
- FontConverter.cs
- XsdDataContractImporter.cs
- PointConverter.cs
- PreservationFileReader.cs
- ObjectNavigationPropertyMapping.cs
- HtmlMobileTextWriter.cs
- TextDecorationCollectionConverter.cs
- XmlAttributes.cs
- xmlglyphRunInfo.cs
- EntityCommandExecutionException.cs
- ContextInformation.cs
- QuinticEase.cs
- SqlCacheDependencyDatabaseCollection.cs
- WebResourceAttribute.cs
- RenderTargetBitmap.cs
- BoolLiteral.cs
- PreservationFileReader.cs
- HtmlShim.cs
- RegexReplacement.cs
- EventPropertyMap.cs
- TreeView.cs
- ElementHost.cs
- PointLight.cs
- ListViewAutomationPeer.cs
- ProcessModule.cs
- FocusWithinProperty.cs
- OutOfProcStateClientManager.cs
- webeventbuffer.cs
- HttpModuleAction.cs
- OrderingExpression.cs
- FontFamilyValueSerializer.cs
- RecordsAffectedEventArgs.cs
- SafeSerializationManager.cs
- HtmlInputFile.cs