TypedLocationWrapper.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / Runtime / TypedLocationWrapper.cs / 1305376 / TypedLocationWrapper.cs

                            //------------------------------------------------------------------------------ 
// Copyright (c) Microsoft Corporation.  All rights reserved.
//-----------------------------------------------------------------------------

namespace System.Activities 
{
    using System.Runtime; 
    using System.Runtime.Serialization; 

    // Users of this class need to be VERY careful because TypedLocationWrapper 
    // will happily wrap an inner location of any type.  This, however, could
    // cause an issue when attempting to get or set the value unless the inner
    // location's Type matches exactly.  If the use of the wrapper will be
    // constrained to either get or set then non-matching (but compatible) types 
    // can be used.  One example of this is when wrapping a location for use
    // with an out argument.  Since out arguments buffer reads from their own 
    // location, we know that only set will be called on this underlying 
    // wrapper.
    [DataContract] 
    class TypedLocationWrapper : Location
    {
        [DataMember]
        Location innerLocation; 

        public TypedLocationWrapper(Location innerLocation) 
            : base() 
        {
            this.innerLocation = innerLocation; 
        }

        internal override bool CanBeMapped
        { 
            get
            { 
                return this.innerLocation.CanBeMapped; 
            }
        } 

        public override T Value
        {
            get 
            {
                return (T)this.innerLocation.Value; 
            } 
            set
            { 
                this.innerLocation.Value = value;
            }
        }
 
        public override string ToString()
        { 
            return this.innerLocation.ToString(); 
        }
    } 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.


                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK