Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / UI / SimplePropertyEntry.cs / 1 / 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;
using System.Security.Permissions;
///
/// PropertyEntry for simple attributes
///
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]
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);
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CustomLineCap.cs
- NTAccount.cs
- DetailsViewPagerRow.cs
- PlainXmlDeserializer.cs
- VerticalAlignConverter.cs
- SettingsPropertyWrongTypeException.cs
- CompilerCollection.cs
- SpellerStatusTable.cs
- HtmlInputCheckBox.cs
- FixUp.cs
- SQLByteStorage.cs
- SqlIdentifier.cs
- TypeToStringValueConverter.cs
- InstanceData.cs
- SettingsBindableAttribute.cs
- RelationshipNavigation.cs
- Choices.cs
- ButtonField.cs
- InternalConfigHost.cs
- TargetException.cs
- MainMenu.cs
- XmlElement.cs
- FileEnumerator.cs
- CompensatableTransactionScopeActivityDesigner.cs
- MetabaseReader.cs
- DatePickerAutomationPeer.cs
- SimpleRecyclingCache.cs
- Brushes.cs
- XmlSchemaSimpleTypeList.cs
- IBuiltInEvidence.cs
- ForEachAction.cs
- VariantWrapper.cs
- BinaryObjectReader.cs
- List.cs
- CodeAssignStatement.cs
- PluralizationServiceUtil.cs
- SqlClientFactory.cs
- WSSecureConversation.cs
- ResourcePool.cs
- StorageScalarPropertyMapping.cs
- NonParentingControl.cs
- PhysicalOps.cs
- TokenizerHelper.cs
- ReadOnlyHierarchicalDataSource.cs
- DrawingContextWalker.cs
- ResolveNameEventArgs.cs
- BufferAllocator.cs
- InvalidFilterCriteriaException.cs
- FontStretchConverter.cs
- DescendantQuery.cs
- CommandLibraryHelper.cs
- RequestCacheManager.cs
- DTCTransactionManager.cs
- HScrollBar.cs
- ToolStripRenderEventArgs.cs
- ToolBarDesigner.cs
- CommandID.cs
- PasswordPropertyTextAttribute.cs
- SymbolType.cs
- BasePattern.cs
- CodeParameterDeclarationExpressionCollection.cs
- TitleStyle.cs
- SchemaConstraints.cs
- SettingsPropertyValueCollection.cs
- AdRotator.cs
- FontSizeConverter.cs
- DifferencingCollection.cs
- ToolStripOverflow.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- SiteMapHierarchicalDataSourceView.cs
- AsnEncodedData.cs
- ListBindingConverter.cs
- Vector3DIndependentAnimationStorage.cs
- RectConverter.cs
- TabItemWrapperAutomationPeer.cs
- FixedNode.cs
- _RegBlobWebProxyDataBuilder.cs
- DataGridTableStyleMappingNameEditor.cs
- OutOfMemoryException.cs
- ItemCheckedEvent.cs
- DependencyPropertyConverter.cs
- FunctionDescription.cs
- ComponentSerializationService.cs
- EntityKey.cs
- RegexInterpreter.cs
- GlyphingCache.cs
- JsonWriter.cs
- MailDefinitionBodyFileNameEditor.cs
- ClientCultureInfo.cs
- Point3DValueSerializer.cs
- ProfilePropertyNameValidator.cs
- ProcessHostConfigUtils.cs
- TextRenderer.cs
- MSAAWinEventWrap.cs
- SafeFindHandle.cs
- SQLInt32.cs
- KoreanCalendar.cs
- ProgressBarHighlightConverter.cs
- ViewLoader.cs
- InternalTypeHelper.cs