Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WinForms / System / WinForms / Design / ToolStripMenuItemCodeDomSerializer.cs / 1 / ToolStripMenuItemCodeDomSerializer.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* */ [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="System.Windows.Forms.Design.ToolStripMenuItemCodeDomSerializer..ctor()")] namespace System.Windows.Forms.Design { using System; using System.Diagnostics; using System.CodeDom; using System.ComponentModel; using System.ComponentModel.Design; using System.ComponentModel.Design.Serialization; ////// The Reason for having a CustomSerializer for ToolStripMenuItem is the existance of Dummy ToolStripMenuItem for ContextMenuStrips. /// We add this Dummy ToolStripMenuItem on the "Non Site" ToolStrip to Host the DropDown which facilitates the entry of New MenuItems. /// These items are then added to the ContextMenuStrip that we are designing. /// But we dont want the Dummy ToolStripMenuItem to Serialize and hence the need for this Custom Serializer. /// internal class ToolStripMenuItemCodeDomSerializer : System.ComponentModel.Design.Serialization.CodeDomSerializer { ////// We implement this for the abstract method on CodeDomSerializer. /// public override object Deserialize(IDesignerSerializationManager manager, object codeObject) { return GetBaseSerializer(manager).Deserialize(manager, codeObject); } ////// This is a small helper method that returns the serializer for base Class /// private CodeDomSerializer GetBaseSerializer(IDesignerSerializationManager manager) { return (CodeDomSerializer)manager.GetSerializer(typeof(Component), typeof(CodeDomSerializer)); } ////// /// We implement this for the abstract method on CodeDomSerializer. This method /// takes an object graph, and serializes the object into CodeDom elements. /// public override object Serialize(IDesignerSerializationManager manager, object value) { ToolStripMenuItem item = value as ToolStripMenuItem; ToolStrip parent = item.GetCurrentParent() as ToolStrip; //Dont Serialize if we are Dummy Item ... if ((item != null) && !(item.IsOnDropDown) && (parent != null) && (parent .Site == null)) { //dont serialize anything... return null; } else { CodeDomSerializer baseSerializer = (CodeDomSerializer)manager.GetSerializer(typeof(ImageList).BaseType, typeof(CodeDomSerializer)); return baseSerializer.Serialize(manager, value); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XmlHierarchicalEnumerable.cs
- PeerContact.cs
- _ConnectStream.cs
- XmlUtil.cs
- PropertyExpression.cs
- EncodedStreamFactory.cs
- GrammarBuilderDictation.cs
- ChannelHandler.cs
- XamlClipboardData.cs
- InkCanvasAutomationPeer.cs
- EqualityComparer.cs
- ListViewEditEventArgs.cs
- WebAdminConfigurationHelper.cs
- NativeMethods.cs
- IfElseDesigner.xaml.cs
- FilteredAttributeCollection.cs
- IntersectQueryOperator.cs
- TransportSecurityBindingElement.cs
- BitStack.cs
- PrintPageEvent.cs
- BulletedList.cs
- GregorianCalendar.cs
- PageThemeParser.cs
- Stroke2.cs
- EntitySqlQueryBuilder.cs
- SHA1.cs
- DataGridViewSelectedRowCollection.cs
- CompiledQueryCacheKey.cs
- Splitter.cs
- PackageStore.cs
- CustomError.cs
- HtmlControl.cs
- DropDownList.cs
- IndependentAnimationStorage.cs
- SHA1Managed.cs
- ProxySimple.cs
- Border.cs
- XPathNode.cs
- CompoundFileIOPermission.cs
- IndexedWhereQueryOperator.cs
- PageHandlerFactory.cs
- WpfXamlLoader.cs
- WebPartDisplayModeCancelEventArgs.cs
- UInt16Storage.cs
- DataGridViewTextBoxColumn.cs
- ExpanderAutomationPeer.cs
- Baml2006ReaderContext.cs
- NestedContainer.cs
- EntityContainerEntitySetDefiningQuery.cs
- _ConnectOverlappedAsyncResult.cs
- AuthenticateEventArgs.cs
- TableItemPattern.cs
- TransportBindingElement.cs
- ProviderConnectionPoint.cs
- SvcMapFile.cs
- PolicyLevel.cs
- DefaultValueTypeConverter.cs
- OdbcConnectionFactory.cs
- TextureBrush.cs
- EmptyControlCollection.cs
- XPathDocumentIterator.cs
- SqlDataSourceFilteringEventArgs.cs
- InstanceLockLostException.cs
- TracingConnectionListener.cs
- BitmapEffectInputData.cs
- PolicyLevel.cs
- FixedSOMFixedBlock.cs
- TdsParserSessionPool.cs
- MobileControlBuilder.cs
- QuaternionAnimationBase.cs
- Processor.cs
- WebPartMinimizeVerb.cs
- control.ime.cs
- UDPClient.cs
- FilterException.cs
- LicenseContext.cs
- Message.cs
- ToolStripLocationCancelEventArgs.cs
- AttributeParameterInfo.cs
- PropertyIDSet.cs
- GenerateHelper.cs
- CategoryGridEntry.cs
- QuadraticBezierSegment.cs
- UdpChannelListener.cs
- BinaryCommonClasses.cs
- HMACMD5.cs
- RSACryptoServiceProvider.cs
- Int32Animation.cs
- SelectionUIService.cs
- Image.cs
- TypeEnumerableViewSchema.cs
- SmtpDigestAuthenticationModule.cs
- AuthorizationRule.cs
- HttpConfigurationSystem.cs
- AssertSection.cs
- ObjectDataSource.cs
- XmlTextReader.cs
- QueryableDataSourceEditData.cs
- SevenBitStream.cs
- BufferAllocator.cs