Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WinForms / System / WinForms / Design / ImageCollectionCodeDomSerializer.cs / 1 / ImageCollectionCodeDomSerializer.cs
namespace System.Windows.Forms.Design {
using System.Design;
using System.CodeDom;
using System.Collections;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Diagnostics;
using System.Reflection;
using System.ComponentModel.Design.Serialization;
using System.Collections.Specialized;
using System.Windows.Forms;
///
///
/// This serializer serializes string dictionaries.
///
//
public class ImageListCodeDomSerializer : CodeDomSerializer {
///
///
/// This method takes a CodeDomObject and deserializes into a real object.
/// We don't do anything here.
///
public override object Deserialize(IDesignerSerializationManager manager, object codeObject) {
//
if (manager == null || codeObject == null) {
throw new ArgumentNullException( manager == null ? "manager" : "codeObject");
}
// Find our base class's serializer.
//
CodeDomSerializer serializer = (CodeDomSerializer)manager.GetSerializer(typeof(Component), typeof(CodeDomSerializer));
if (serializer == null) {
Debug.Fail("Unable to find a CodeDom serializer for 'Component'. Has someone tampered with the serialization providers?");
return null;
}
return serializer.Deserialize(manager, codeObject);
}
///
///
/// Serializes the given object into a CodeDom object.
///
public override object Serialize(IDesignerSerializationManager manager, object value) {
CodeDomSerializer baseSerializer = (CodeDomSerializer)manager.GetSerializer(typeof(ImageList).BaseType, typeof(CodeDomSerializer));
object codeObject = baseSerializer.Serialize(manager, value);
ImageList imageList = value as ImageList;
if (imageList != null) {
StringCollection imageKeys = imageList.Images.Keys;
if (codeObject is CodeStatementCollection) {
CodeExpression imageListObject = GetExpression(manager, value);
if (imageListObject != null) {
CodeExpression imageListImagesProperty = new CodePropertyReferenceExpression(imageListObject, "Images");
if (imageListImagesProperty != null) {
for (int i = 0; i < imageKeys.Count; i++) {
if ((imageKeys[i] != null) || (imageKeys[i].Length != 0)){
CodeMethodInvokeExpression setNameMethodCall = new CodeMethodInvokeExpression(imageListImagesProperty, "SetKeyName",
new CodeExpression [] {
new CodePrimitiveExpression(i), // SetKeyName(int,
new CodePrimitiveExpression(imageKeys[i]) // string);
});
((CodeStatementCollection)codeObject).Add(setNameMethodCall);
}
}
}
}
}
}
return codeObject;
}
} // Class ImageListCodeDomSerializer
} // Namespace System.Windows.Forms.Design
// 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
- DelegatedStream.cs
- ThreadInterruptedException.cs
- UrlPath.cs
- WebPartRestoreVerb.cs
- DataService.cs
- ThreadAbortException.cs
- TemplatePagerField.cs
- BinaryCommonClasses.cs
- ConsoleEntryPoint.cs
- Vector3DIndependentAnimationStorage.cs
- SafeFileHandle.cs
- StylusPointCollection.cs
- PropertyValueChangedEvent.cs
- Compiler.cs
- TraceListeners.cs
- ZoneIdentityPermission.cs
- HelpProvider.cs
- QilInvokeLateBound.cs
- CompilerGeneratedAttribute.cs
- TimeSpanConverter.cs
- DataRecordObjectView.cs
- GeometryConverter.cs
- DbMetaDataFactory.cs
- ListViewGroupItemCollection.cs
- Bits.cs
- ItemsPresenter.cs
- ClientSettingsStore.cs
- ManagedWndProcTracker.cs
- WebPart.cs
- UnionCodeGroup.cs
- ServicePointManagerElement.cs
- EventLogPermission.cs
- PolicyException.cs
- ExternalCalls.cs
- FileIOPermission.cs
- ToolStripButton.cs
- ByteStreamGeometryContext.cs
- Schedule.cs
- Function.cs
- XmlChildEnumerator.cs
- DesignerCatalogPartChrome.cs
- SqlLiftWhereClauses.cs
- HttpsHostedTransportConfiguration.cs
- AnnotationResourceCollection.cs
- Vertex.cs
- TableLayoutStyle.cs
- SafeSecurityHandles.cs
- ContentDisposition.cs
- SignedPkcs7.cs
- FileRecordSequence.cs
- Utilities.cs
- CompressStream.cs
- MemberInfoSerializationHolder.cs
- DrawTreeNodeEventArgs.cs
- RowToFieldTransformer.cs
- ExceptionNotification.cs
- VirtualPathProvider.cs
- ComponentRenameEvent.cs
- DataGridItemCollection.cs
- MouseOverProperty.cs
- ObjectResult.cs
- MessageSmuggler.cs
- TcpStreams.cs
- IconBitmapDecoder.cs
- EntityObject.cs
- CqlWriter.cs
- ResourceExpressionEditorSheet.cs
- Transaction.cs
- WebRequestModulesSection.cs
- DataGridViewBand.cs
- ExpressionTextBox.xaml.cs
- HelpPage.cs
- Atom10ItemFormatter.cs
- QueryTaskGroupState.cs
- PreProcessInputEventArgs.cs
- CommandField.cs
- DataGridRow.cs
- DataKeyArray.cs
- SimpleType.cs
- PlaceHolder.cs
- ListItemConverter.cs
- SqlClientWrapperSmiStream.cs
- HtmlWindowCollection.cs
- HttpValueCollection.cs
- AvTraceDetails.cs
- Icon.cs
- HtmlTableCell.cs
- CustomErrorCollection.cs
- InvalidCastException.cs
- TemplateLookupAction.cs
- CodeSubDirectory.cs
- WindowsAuthenticationModule.cs
- Point4DConverter.cs
- ProofTokenCryptoHandle.cs
- EntitySetBaseCollection.cs
- BinaryFormatter.cs
- CodeGenerator.cs
- SiteIdentityPermission.cs
- ImplicitInputBrush.cs
- ProxyWebPartManager.cs