NGWS SDK Documentation  

This is preliminary documentation and subject to change.
To comment on this topic, please send us email at ngwssdk@microsoft.com. Thanks!

System Namespace

Classes

Class Description
AccessException Represents a failed attempt to access a type member (method, field, etc.).
Activator The Activator class provides a standard way to create and obtain instances of objects in the NGWS runtime in a late bound way.
AppDomain The NGWS runtime allows multiple applications to run in a single process. Application domains are used to isolate the applications from one another. The AppDomain class provides methods that let NGWS runtime hosts perform the following tasks:
  • Enumerate the assemblies and threads in a domain.
  • Define dynamic assemblies in a domain.
  • Set events assembly loading and domain termination.
  • Load assemblies and types into the domain.
  • Terminate the domain.
AppDomainFlags Represents assembly binding information that can be added to an AppDomain. The members are used with the GetData and SetData methods to identify the AppDomain data to be used.
AppDomainUnloadedException Initializes a new instance of the AppDomainUnloadedException.
AppDomainUnloadInProgressException Initializes a new instance of the AppDomainUnloadInProgressException.
ApplicationException Represents non-fatal application errors.
ArgumentException Represents an exception that is thrown when a method is invoked and one of the arguments is not valid.
ArgumentNullException Represents the exception that is thrown when a null argument passed to a method that does not accept it.
ArgumentOutOfRangeException Represents an exception that is thrown when the argument is outside the allowed values of the method that is invoked.
ArithmeticException Represents an exception that is thrown when overflow or underflow occurs.
Array Provides methods for creating, manipulating, searching, and sorting arrays. This is the base class for all arrays in the system.
ArrayTypeMismatchException Represents an exception that is thrown when an attempt is made to store an object of the wrong type within an array.
Attribute Custom attributes add user-defined annotations to the metadata. Custom attributes allow an instance of a type to be stored with any element of the metadata. This mechanism can be used to store application specific information at compile time and access it either at runtime or when another tool reads the metadata. While any user-defined type can be used as an attribute it is expected that most attributes will be instances of types whose parent is System.Attribute. The NGWS runtime predefines some attribute types and uses them to control runtime behavior. Some languages predefine attribute types to represent language features not directly represented in the VOS. Users or other tools are welcome to define and use additional attribute types.

All Attributes inherit (directly or indirectly) from System.Attribute. This common base class gives all Attributes a central point in the hierarchy from which they can inherit. Compilers and other development tools use this information to identify which types are Custom Attributes

Just inheriting from System.Attribute gives an attribute certain default behaviors: Allowed on any element, Inheritable, duplicate instances are not allowed.

AttributeUsageAttribute [To be supplied.]
BadImageFormatException [To be supplied.]
BitConverter Converts arrays of unsigned bytes to and from the base data types.
Buffer Provides access to unmanaged memory.
CallContext This class exposes the API for the users of call context. All methods in CallContext are static and operate upon the call context in the Thread.

NOTE: CallContext is a specialized form of something that behaves like TLS for method calls. However, since the call objects may get serialized and deserialized along the path, it is tough to guarantee identity preservation.

CLSCompliantAttribute This attribute indicates if an element is compliant with the Common language specification or not.

In order to be CLS-compliant, a producer tool must have an option that enables users to produce only CLS-compliant types. Tool vendors may also wish to have an option that enables users to consume only CLS-compliant types, but this is not required for CLS-compliance.

In addition, the runtime SDK will provide a tool that verifies CLS compliance of any compiled library or executable.

The goal of the compiler switch and SDK tool is to give developers some indication of when they use features that are not guaranteed to be supported in all NGWS runtime programming languages.

The CLSCompliantAttribute indicates what assemblies are CLS compliant and what Types and Type members are not CLS Compliant in a compliant assembly.

Note: The CLSCompliantAttribute may not be applied to any member of an Interface or any abstract member of a base type as this would make the classes un-extensible.

There are two ways this custom attribute can be used:

On Assemblies- When applied to an Assembly, this attribute marks an Assembly as being CLS compliant. Unless otherwise noted all types defined in this assembly are assumed to be CLS compliant. Without this attribute, an assembly is considered to be non compliant, all type defined with in it are also considered to be non-compliant.

On Types and Type Members- This attribute may be applied to Types, Methods, Properties, Fields, or Events. It calls out those members of a CLS Compliant Assembly that are not compliant. Any member of CLS Compliant assembly that is not compliant must have a compliant alternative. The CLS compliance checking tools ignore any member that has this attribute. That is, no warning is given for violation in this member. This attribute is inherited by base classes.

For example: compiling code such as:

public int SetValue (unsigned int value);

would generate a CLS compliance warning because the type of value is not in the CLS.

However, if the method was defined as:

[CLSComplaintAttribute (false)] public int SetValue (unsigned int value); public int SetValue (long value);

No compiler warnings/errors would be generated.

This checking gets slightly more complicate when the parameter type is non-primitive type. For example:

public int SetValue (FooType value);

We have to know something about the parameter type (FooType) to know if this method is CLS compliant. We assume that types used in public interfaces but not defined in this compiland are CLS compliant if and only if:

1. The type is defined in an assembly that is marked with the System.CLSCompliantAttribute (true)

The type is not marked with the custom attribute System.CLSCompliantAttribute(false).

See the Common Langauge specification for more details.

Console Provides access to the standard input, standard output, and standard error streams. These streams are represented by Console.In, Console.Out, and Console.Error, respectively. They can be redirected via the SetIn, SetOut, and SetError methods.

The read methods provided by this class read from Console.In. They are provided as an alternative to directly invoking them on Console.In that is a StreamReader.

The write methods provided by this class write to Console.Out. They are provided as an alternative to directly invoking them on Console.Out that is a StreamWriter. Console.Error is also a StreamWriter.

ContextBoundObject Defines the root type for all context bound types.
ContextMarshalException Represents an exception that is thrown when the formal type and marshal style of the object are incompatible.
ContextStaticAttribute  
Convert Converts base data types to other base data types.

A conversion that results in a loss of precision (narrowing conversion) will not return an exception; however, an exception will be returned if the resultant magnitude is out of range. For example, when a Double is converted to a Single, a loss of precision may occur, but an exception will not be thrown. However, if the Double is too large in magnitude to be represented by a Single, an exception will be thrown.

CoreException Represents an exception that is thrown by the Runtime.
DBNull Represents a null value.
Delegate Represents a delegate, which is a data structure that refers to a static method or to an object instance and an instance method of that object.
DivideByZeroException Represents an exception that is thrown when an attempt is made to divided by zero.
DuplicateWaitObjectException Represents an exception that is thrown when for duplicate objects in WaitAll or Wait Any.
Empty Represents an empty value.
EntryPointNotFoundException Represents the exception class for class loading failures.
Enum Provides the base class for enumerations.
Environment Provides basic access to environment functionality.
EventArgs The EventArgs is the base class for event data.
Exception Represents the class that provides information required to handle and process errors.
ExecutionEngineException Represents an exception that is thrown by the NGWS runtime when an error internal to the Execution Engine occurs.
FieldAccessException Represents an exception that is thrown when there is a failed attempt to access a field.
FlagsAttribute Custom attribute to indicate that the enum should be treated as a bitfield (or set of flags). An IDE can use this information to provide a richer development experience.

Bitfeilds are allowed to be or'ed together; enum values are not.

FormatException Represents an exception that is thrown when the format of an argument does not match the contract of its method.
GC Provides methods for interacting with the memory management system, which performs garbage collection (GC) of objects that are no longer needed.
IndexOutOfRangeException Represents an exception that is thrown when an attempt is made to access an array outside of its upper or lower bound.
InvalidCastException Represents an exception that is thrown when an invalid cast occurs.
InvalidOperationException Represents an exception that is thrown when a method is invoked and, due to the current state of the object involved, the invocation is invalid.
LocalDataStore [To be supplied.]
LocalDataStoreMgr [To be supplied.]
LocalDataStoreSlot [To be supplied.]
LogicalCallContext Reserved.
MarshalByRefObject Base class for Remoting objects that need to be marshal by reference. This includes WellKnown SingleCall and WellKnown Singleton WebService objects and Client Activated Objects.
Math Provides static methods for trigonometric, logarithmic, and other common mathematical functions. Overloaded methods are provided for use with standard base data types.
MethodAccessException Represents an exception that is thrown when an attempt to access a method fails.
MissingFieldException Represents an exception that is thrown when there is an attempt to access a nonexistent field.
MissingMemberException Represents an exception that helps handle versioning problems with DLLs.
MissingMethodException Represents the exception that is thrown when there is an attempt to access a nonexistent method.
MulticastDelegate Represents a multicast delegate, which is a delegate that can have an invocation list with more than one element. All multicast delegates are derived from this class.

A delegate that inherits directly from Delegate has an invocation list (a linked list of delegates that are to be invoked when the "invoke" method is called) with one element- itself. The Delegate.Combine and Delegate.Remove methods are used to create new invocation lists.

MulticastNotSupportedException Represents the exception that is thrown when there is an attempt to add multiple callbacks to a non-multicast delegate.
NonSerializedAttribute [To be supplied.]
NotFiniteNumberException Represents an exception that helps handle numbers that are not valid.
NotImplementedException [To be supplied.]
NotSupportedException Represents the exception that is thrown to indicate that a method is not supported.
NullReferenceException Represents the exception that is thrown when there is an attempt to dereference a null object reference.
Object Supports all classes in the NGWS frameworks class hierarchy and provides low-level services to subclasses. This is the ultimate superclass of all classes in NGWS frameworks; it is the root of the type hierarchy.
ObsoleteAttribute Represents an attribute that is attached to members that are not to be used any longer. Message is some human readable explanation of what to use. Error indicates whether the compiler should treat usage of such a method as an error.
OperatingSystem Contains information about an operating system version. The information includes major version number, minor version numbers, a build number, a platform identifier, and descriptive text about the operating system.
OutOfMemoryException Represents the exception that is thrown when there is not enough memory to continue the execution of a program.
OverflowException Represents the exception that is thrown when an arithmetic operation results in an overflow.
ParamArrayAttribute [To be supplied.]
Radix The Radix class provides methods for converting numbers between different counting systems. Counting systems from base 2 (binary) through base 36 are supported.
Random Represents a pseudo-random-number generator, a device that meets certain statistical requirements and produces what is known as a sequence of pseudo-random numbers.

It generates numbers chosen with equal probability from a finite set of numbers. Because a mathematical algorithm is used, the numbers are not completely random but are sufficiently random for practical uses. The random number generation starts from a "seed." If the same seed is used repeatedly, the same series of numbers will be generated unless the seed is time-dependent, thereby producing a different series for each call.

RankException Represents the exception that is thrown when an array with the wrong number of dimensions is passed to a method.
SerializableAttribute [To be supplied.]
StackOverflowException Represents the exception that is thrown when there is a stack overflow violation.
String Represents a static string of characters.
SystemException Represents non-fatal, "less severe" errors that may occur.
ThreadStaticAttribute Provides for type member fields that are relative for the thread. Whenever the static field is accessed on a particular thread it will be unique or relative for that thread only. The static is not shared between threads. If the static field is access on another thread the field will contain a different value, since the field is unique per thread. Null initialization of thread local statics. The member field is marked with a custom attribute ThreadStaticAttribute.
TimeZone [To be supplied.]
Type Represents type declarations: class types, interface types, array types, value types, and enumeration types.
TypeInitializationException Represents the exception thrown when type's class initializer throws an exception.
TypeLoadException Retrieves messages when type-loading failures occur.
TypeUnloadedException Represents an exception that is thrown when there is an attempt to access an unloaded class.
UnhandledExceptionEvent Represents an exception event that was not handled by an application domain.
Value [To be supplied.]
ValueType Provides the base class for value types.
Version Represents the version number for a NGWS runtime assembly.
WeakReference Supports a weak reference.
WeakReferenceException Represents an exception that is thrown when an attempt to access an invalid object reference encapsulated by a WeakReference object.

Interfaces

Interface Description
IAsyncResult  
ICloneable Supports cloning, which creates a new instance of a type with the same value as an existing instance. Only objects that implement ICloneable can be cloned.
IComparable Provides functionality to compare objects and to sort arrays and collections.
IConvertible [To be supplied.]
ICustomFormatter This interface is implemented by classes that special formatting.
IFormattable Provides functionality to format the value of an object.
ILogicalThreadAffinative [To be supplied.]
IServiceObjectProvider Provides a mechanism for retrieving a service object, which provides a service to other objects. Services are identified using Type objects.

Structures

Structure Description
ArgIterator Represents a variable argument list. You can use this class to step through the argument list of a function that takes a variable number of arguments. It is very likely that most compilers will hide the complexity of ArgIterator under language syntax. See the example below.

Functions that require variable length argument lists are declared using the ellipsis (...) in the argument list.

Boolean Represents the Boolean value, which is either true or false.
Byte Represents an unsigned byte (1-byte uint) value.
Char Represents a character value.
Currency OBSOLETE. Use Decimal class intead.

Represents a currency value.

DateTime Represents a date and time value.
Decimal Represents a decimal value.
Double Represents a 64-bit, double precision, floating point number.
Guid Represents a globally unique identifier (GUID). GUIDs can be used wherever a unique identifier is required.
Int16 Represents a 16-bit signed integer.
Int32 Represents a 32-bit signed integer.
Int64 Represents a 64-bit signed integer.
ParamArray Presents an array-like abstraction over the arguments to a varargs function call. This is a value type.
RuntimeArgumentHandle To be supplied.
RuntimeFieldHandle The RuntimeFieldHandle is a handle to the internal metadata representation of a field.
RuntimeMethodHandle The RuntimeMethodHandle is a handle to the internal metadata representation of a method.
RuntimeTypeHandle The RuntimeTypeHandle is a handle to the internal metadata representation of a type.
SByte Represents a 8-bit signed integer .
Single Represents a four-byte, single precision, floating point number.
TimeSpan Represents a period of time.
TypedReference TypedReferences are used to describe objects that contain both a managed pointer to a location and a runtime representation of the type that may be stored at that location. TypedReferences can be used for parameters and local variables. It is a built-in value type.
UInt16 Represents a 16-bit unsigned integer.
UInt32 Represents a 32-bit unsigned integer.
UInt64 Represents an 64-bit unsigned integer integer.
Void Indicates that a method has the void return type.

This class is used in the System.Reflection namespace. Instances of this class cannot be created, and the class has no members.

Delegates

Delegate Description
AsyncCallback Delegate for methods that complete asynchronously.
EventHandler Delegate for Events.
UnhandledExceptionEventHandler Exception handler for an event that is not handled by an application domain.

Enumerations

Enumeration Description
AttributeTargets Specifies all the elements of the VOS to which it is valid to attach the attribute.
PlatformID Describes the platforms supported by an assembly. These flags are used to bind to an assembly.
TypeCode [To be supplied.]