Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / clr / src / BCL / System / OperatingSystem.cs / 1 / OperatingSystem.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: OperatingSystem ** ** ** Purpose: ** ** ===========================================================*/ namespace System { using System.Runtime.Serialization; using System.Globalization; using System.Security.Permissions; using System.Runtime.InteropServices; [ComVisible(true)] [Serializable()] public sealed class OperatingSystem : ICloneable , ISerializable { private Version _version; private PlatformID _platform; private string _servicePack; private string _versionString; private OperatingSystem() { } public OperatingSystem(PlatformID platform, Version version) : this(platform, version, null) { } internal OperatingSystem(PlatformID platform, Version version, string servicePack) { if( platform < PlatformID.Win32S || platform > PlatformID.Unix) { throw new ArgumentException( String.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("Arg_EnumIllegalVal"), (int)platform), "platform"); } if ((Object) version == null) throw new ArgumentNullException("version"); _platform = platform; _version = (Version) version.Clone(); _servicePack = servicePack; } private OperatingSystem(SerializationInfo info, StreamingContext context) { SerializationInfoEnumerator enumerator = info.GetEnumerator(); while( enumerator.MoveNext()) { switch( enumerator.Name) { case "_version": _version = (Version) info.GetValue("_version", typeof(Version)); break; case "_platform": _platform = (PlatformID) info.GetValue("_platform", typeof(PlatformID)); break; case "_servicePack": _servicePack = info.GetString("_servicePack"); break; } } if (_version == null ) { throw new SerializationException(Environment.GetResourceString("Serialization_MissField", "_version")); } } [SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.SerializationFormatter)] public void GetObjectData(SerializationInfo info, StreamingContext context) { if( info == null ) { throw new ArgumentNullException("info"); } info.AddValue("_version", _version); info.AddValue("_platform", _platform); info.AddValue("_servicePack", _servicePack); } public PlatformID Platform { get { return _platform; } } public string ServicePack { get { if( _servicePack == null) { return string.Empty; } return _servicePack; } } public Version Version { get { return _version; } } public Object Clone() { return new OperatingSystem(_platform, _version, _servicePack ); } public override String ToString() { return VersionString; } public String VersionString { get { if(_versionString != null) { return _versionString; } String os; if (_platform == PlatformID.Win32NT) os = "Microsoft Windows NT "; else if (_platform == PlatformID.Win32Windows) { if ((_version.Major > 4) || ((_version.Major == 4) && (_version.Minor > 0))) os = "Microsoft Windows 98 "; else os = "Microsoft Windows 95 "; } else if (_platform == PlatformID.Win32S) os = "Microsoft Win32S "; else if (_platform == PlatformID.WinCE) os = "Microsoft Windows CE "; else os = ""; if( String.IsNullOrEmpty(_servicePack)) { _versionString = os + _version.ToString(); } else { _versionString = os + _version.ToString(3) + " " + _servicePack; } return _versionString; } } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XsltArgumentList.cs
- XmlDigitalSignatureProcessor.cs
- Scalars.cs
- InterleavedZipPartStream.cs
- NetWebProxyFinder.cs
- SpotLight.cs
- GlyphCache.cs
- TriggerAction.cs
- WindowsFont.cs
- ListViewUpdatedEventArgs.cs
- KeyValueSerializer.cs
- MainMenu.cs
- WorkflowInstanceContextProvider.cs
- Span.cs
- TextElementAutomationPeer.cs
- SyndicationDeserializer.cs
- BooleanFunctions.cs
- XmlSerializableReader.cs
- OneWayChannelFactory.cs
- BuildManagerHost.cs
- InstancePersistenceContext.cs
- MetadataException.cs
- TextTreeInsertUndoUnit.cs
- peersecuritysettings.cs
- UserNameSecurityToken.cs
- MatrixStack.cs
- TypefaceCollection.cs
- ExpressionVisitor.cs
- NullReferenceException.cs
- FlowDocumentReader.cs
- CodeTypeDelegate.cs
- DictionaryTraceRecord.cs
- NativeMethods.cs
- Crc32.cs
- WmiPutTraceRecord.cs
- CodePageEncoding.cs
- AutoCompleteStringCollection.cs
- DataGridHelper.cs
- PrintPreviewGraphics.cs
- MetadataProperty.cs
- DbParameterCollection.cs
- AsymmetricAlgorithm.cs
- SHA256CryptoServiceProvider.cs
- XmlQualifiedNameTest.cs
- OverloadGroupAttribute.cs
- HandlerMappingMemo.cs
- DbgCompiler.cs
- DataObject.cs
- DefaultParameterValueAttribute.cs
- AssemblyCollection.cs
- XmlTextEncoder.cs
- ListBoxItemAutomationPeer.cs
- ContainerSelectorBehavior.cs
- SimpleHandlerFactory.cs
- GridViewEditEventArgs.cs
- connectionpool.cs
- FigureParagraph.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- MimeXmlReflector.cs
- StringBlob.cs
- FusionWrap.cs
- OleDbTransaction.cs
- ChtmlLinkAdapter.cs
- TextParagraph.cs
- CodeConditionStatement.cs
- SymmetricKeyWrap.cs
- Schema.cs
- ScrollPattern.cs
- QueryableDataSourceEditData.cs
- DataGridTextBox.cs
- RemotingConfigParser.cs
- JsonServiceDocumentSerializer.cs
- TableLayoutCellPaintEventArgs.cs
- TextHintingModeValidation.cs
- BinaryCommonClasses.cs
- MenuScrollingVisibilityConverter.cs
- MessageHeaders.cs
- TextElementEnumerator.cs
- PageTheme.cs
- ClipboardProcessor.cs
- TextElementEditingBehaviorAttribute.cs
- Validator.cs
- PersonalizationProviderHelper.cs
- Switch.cs
- CompilationRelaxations.cs
- InvokeMethod.cs
- TableLayout.cs
- Walker.cs
- SqlRecordBuffer.cs
- NumericUpDownAcceleration.cs
- DesigntimeLicenseContext.cs
- Configuration.cs
- HeaderedContentControl.cs
- DescendantQuery.cs
- HttpServerChannel.cs
- LayoutSettings.cs
- DataSourceControlBuilder.cs
- LZCodec.cs
- TranslateTransform3D.cs
- Util.cs