Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / 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;
}
}
}
}
// 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
- ServerProtocol.cs
- Blend.cs
- PropertyGrid.cs
- LoginDesigner.cs
- EventManager.cs
- SchemaMapping.cs
- JsonXmlDataContract.cs
- BuildProviderCollection.cs
- SafeRightsManagementSessionHandle.cs
- SwitchLevelAttribute.cs
- StandardOleMarshalObject.cs
- TemplateInstanceAttribute.cs
- CompilerLocalReference.cs
- TdsParserStaticMethods.cs
- CurrentChangedEventManager.cs
- RepeatBehavior.cs
- DesignTable.cs
- SecurityTokenAttachmentMode.cs
- HMACRIPEMD160.cs
- NestedContainer.cs
- AppModelKnownContentFactory.cs
- OdbcReferenceCollection.cs
- NameValueCollection.cs
- ClonableStack.cs
- WebBrowserDocumentCompletedEventHandler.cs
- SqlCacheDependencyDatabaseCollection.cs
- WorkflowIdleBehavior.cs
- XmlSchemaIdentityConstraint.cs
- X509CertificateCollection.cs
- SimpleMailWebEventProvider.cs
- ResourceContainerWrapper.cs
- GridViewItemAutomationPeer.cs
- NumericUpDown.cs
- ToolStripButton.cs
- FlowDocumentView.cs
- SqlParameter.cs
- CrossAppDomainChannel.cs
- Peer.cs
- fixedPageContentExtractor.cs
- ConnectionsZone.cs
- ColumnHeader.cs
- NotifyCollectionChangedEventArgs.cs
- oledbconnectionstring.cs
- IdleTimeoutMonitor.cs
- TextEndOfSegment.cs
- Currency.cs
- QilTypeChecker.cs
- XmlAttributeCollection.cs
- XmlWrappingReader.cs
- MessagePropertyDescriptionCollection.cs
- FormsAuthenticationUser.cs
- RouteData.cs
- TagPrefixAttribute.cs
- SiteMapPath.cs
- Int64.cs
- GenericPrincipal.cs
- RepeaterItem.cs
- ArrayTypeMismatchException.cs
- AuthorizationSection.cs
- OpenFileDialog.cs
- SystemResources.cs
- TableDesigner.cs
- X509Utils.cs
- Span.cs
- OletxResourceManager.cs
- ComboBox.cs
- WindowsStatusBar.cs
- ITextView.cs
- BypassElementCollection.cs
- TrackingDataItem.cs
- ServiceObjectContainer.cs
- EventPropertyMap.cs
- ComplexLine.cs
- EntityTemplateFactory.cs
- UnsafeNativeMethods.cs
- PeerTransportListenAddressValidatorAttribute.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- RadioButton.cs
- IndexedSelectQueryOperator.cs
- ProxyWebPartConnectionCollection.cs
- ReadOnlyObservableCollection.cs
- SqlDataRecord.cs
- UserInitiatedNavigationPermission.cs
- ReadOnlyAttribute.cs
- Selector.cs
- DoWorkEventArgs.cs
- HtmlInputImage.cs
- DataGridViewColumnStateChangedEventArgs.cs
- CommandPlan.cs
- SessionState.cs
- ClientScriptItemCollection.cs
- TraceListeners.cs
- ChannelManager.cs
- AudienceUriMode.cs
- _PooledStream.cs
- GenerateScriptTypeAttribute.cs
- SubclassTypeValidator.cs
- TheQuery.cs
- FormatException.cs
- XmlConvert.cs