Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / OperatingSystem.cs / 1305376 / 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;
using System.Diagnostics.Contracts;
[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.MacOSX) {
throw new ArgumentException(
Environment.GetResourceString("Arg_EnumIllegalVal", (int)platform),
"platform");
}
if ((Object) version == null)
throw new ArgumentNullException("version");
Contract.EndContractBlock();
_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"));
}
}
[System.Security.SecurityCritical] // auto-generated_required
public void GetObjectData(SerializationInfo info, StreamingContext context) {
if( info == null ) {
throw new ArgumentNullException("info");
}
Contract.EndContractBlock();
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;
switch(_platform)
{
case PlatformID.Win32NT:
os = "Microsoft Windows NT ";
break;
case PlatformID.Win32Windows:
if ((_version.Major > 4) ||
((_version.Major == 4) && (_version.Minor > 0)))
os = "Microsoft Windows 98 ";
else
os = "Microsoft Windows 95 ";
break;
case PlatformID.Win32S:
os = "Microsoft Win32S ";
break;
case PlatformID.WinCE:
os = "Microsoft Windows CE ";
break;
case PlatformID.MacOSX:
os = "Mac OS X ";
break;
default:
os = " ";
break;
}
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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ObjectPersistData.cs
- ColumnReorderedEventArgs.cs
- FormatSettings.cs
- GridViewSelectEventArgs.cs
- MetadataArtifactLoaderCompositeFile.cs
- HandlerMappingMemo.cs
- PriorityItem.cs
- DeobfuscatingStream.cs
- _BufferOffsetSize.cs
- TabItem.cs
- XmlSchemaGroupRef.cs
- ContentDisposition.cs
- XmlObjectSerializerWriteContext.cs
- NativeMethodsOther.cs
- CompoundFileDeflateTransform.cs
- Attributes.cs
- BasicExpressionVisitor.cs
- DependencyProperty.cs
- XmlSerializer.cs
- WebRequestModuleElementCollection.cs
- WmlControlAdapter.cs
- InputBinder.cs
- SocketException.cs
- Column.cs
- Composition.cs
- AnimationLayer.cs
- _FixedSizeReader.cs
- MaskedTextBoxDesigner.cs
- HtmlLink.cs
- Helper.cs
- InputScopeNameConverter.cs
- IntSecurity.cs
- ServiceDescriptions.cs
- AtlasWeb.Designer.cs
- Barrier.cs
- ColorKeyFrameCollection.cs
- WindowsGrip.cs
- WebControlsSection.cs
- X509Utils.cs
- DataSourceDesigner.cs
- DistinctQueryOperator.cs
- FrameworkRichTextComposition.cs
- GeometryModel3D.cs
- ListViewUpdateEventArgs.cs
- ArrangedElement.cs
- DataRelation.cs
- TemplatePropertyEntry.cs
- URLString.cs
- ChtmlFormAdapter.cs
- WebBrowserBase.cs
- CompositeFontFamily.cs
- NoClickablePointException.cs
- SqlColumnizer.cs
- RepeatButton.cs
- UnitControl.cs
- InputLanguageEventArgs.cs
- OracleConnection.cs
- DrawingVisualDrawingContext.cs
- ScrollChangedEventArgs.cs
- InputMethodStateTypeInfo.cs
- ErrorHandlerFaultInfo.cs
- RtfControlWordInfo.cs
- FlowPosition.cs
- XmlILTrace.cs
- ExecutionContext.cs
- PropertyStore.cs
- ItemCheckedEvent.cs
- DetailsViewInsertEventArgs.cs
- Int16Converter.cs
- ProcessModelInfo.cs
- DBSchemaRow.cs
- XmlUtil.cs
- ToolStripSettings.cs
- SwitchAttribute.cs
- QueryPageSettingsEventArgs.cs
- RowType.cs
- Grid.cs
- PipelineModuleStepContainer.cs
- ReturnValue.cs
- GenericAuthenticationEventArgs.cs
- Typeface.cs
- SimpleType.cs
- XmlSchemaSimpleTypeRestriction.cs
- GridProviderWrapper.cs
- UIPermission.cs
- SystemUnicastIPAddressInformation.cs
- CustomAttributeFormatException.cs
- Expr.cs
- RadioButton.cs
- validationstate.cs
- ProgressBar.cs
- BigInt.cs
- AddIn.cs
- FactoryId.cs
- MissingManifestResourceException.cs
- RowToFieldTransformer.cs
- FreezableCollection.cs
- JpegBitmapDecoder.cs
- PrintDocument.cs
- Translator.cs