Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / 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); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FileChangesMonitor.cs
- CornerRadiusConverter.cs
- EditorPartDesigner.cs
- RuleInfoComparer.cs
- DigitShape.cs
- DependencyPropertyHelper.cs
- ItemContainerGenerator.cs
- ConfigXmlAttribute.cs
- DataGridCommandEventArgs.cs
- HtmlGenericControl.cs
- NullableBoolConverter.cs
- updatecommandorderer.cs
- RoleBoolean.cs
- ExtensionSimplifierMarkupObject.cs
- LabelExpression.cs
- XmlSchemaElement.cs
- activationcontext.cs
- ConsoleEntryPoint.cs
- NamedPermissionSet.cs
- MaskedTextBoxDesignerActionList.cs
- LogWriteRestartAreaState.cs
- ObjectTag.cs
- FormViewRow.cs
- ClipboardProcessor.cs
- VirtualDirectoryMapping.cs
- RemoteDebugger.cs
- GroupBoxAutomationPeer.cs
- OperationCanceledException.cs
- TreeNode.cs
- ProfilePropertyNameValidator.cs
- ToolTipAutomationPeer.cs
- UpDownBase.cs
- SafeWaitHandle.cs
- DataRow.cs
- WebPartPersonalization.cs
- XmlQueryTypeFactory.cs
- ControlBindingsCollection.cs
- XmlSchemaSimpleTypeList.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- XmlReflectionImporter.cs
- ISAPIWorkerRequest.cs
- ProfileGroupSettingsCollection.cs
- _emptywebproxy.cs
- SessionStateContainer.cs
- FlowDocumentPageViewerAutomationPeer.cs
- SymmetricAlgorithm.cs
- DoneReceivingAsyncResult.cs
- ClientSideQueueItem.cs
- TdsParserHelperClasses.cs
- HtmlTitle.cs
- MetadataArtifactLoaderResource.cs
- CalendarButtonAutomationPeer.cs
- ProfessionalColorTable.cs
- QueryInterceptorAttribute.cs
- StatusBar.cs
- DataTable.cs
- XamlFigureLengthSerializer.cs
- TextUtf8RawTextWriter.cs
- WebPartVerbsEventArgs.cs
- NativeMethods.cs
- SecurityTokenException.cs
- StylusButton.cs
- PropertyGeneratedEventArgs.cs
- safelink.cs
- TextTreeTextElementNode.cs
- DecimalConstantAttribute.cs
- SolidBrush.cs
- SplayTreeNode.cs
- AlignmentXValidation.cs
- SignatureDescription.cs
- _IPv4Address.cs
- WindowsListViewItemStartMenu.cs
- X509RawDataKeyIdentifierClause.cs
- DataServiceRequest.cs
- FileDialogCustomPlace.cs
- Evidence.cs
- WindowsTokenRoleProvider.cs
- TextBreakpoint.cs
- CatalogPart.cs
- ImageClickEventArgs.cs
- ChtmlFormAdapter.cs
- SizeConverter.cs
- BamlRecords.cs
- ImageButton.cs
- ValidatorAttribute.cs
- DataGridTablesFactory.cs
- SimpleType.cs
- ArglessEventHandlerProxy.cs
- QilLiteral.cs
- DesignerView.Commands.cs
- PermissionAttributes.cs
- AuthorizationSection.cs
- ConstructorBuilder.cs
- DbProviderFactoriesConfigurationHandler.cs
- WindowsFormsSectionHandler.cs
- AutomationProperty.cs
- FixUp.cs
- Range.cs
- SessionParameter.cs
- SplitContainer.cs