ContractComponent.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 / fx / src / AddIn / AddIn / System / Addin / Hosting / Store / ContractComponent.cs / 1305376 / ContractComponent.cs

                            // ==++== 
//
//   Copyright (c) Microsoft Corporation.  All rights reserved.
//
// ==--== 
/*============================================================
** 
** Class:  ContractComponent 
**
** Purpose: Represents a class that implements IContract on 
**     disk, for the add-in model.
**
===========================================================*/
using System; 
using System.Collections.Generic;
using System.Collections.ObjectModel; 
using System.Globalization; 
using System.Text;
using System.AddIn.MiniReflection; 
using System.Diagnostics.Contracts;

namespace System.AddIn
{ 
    [Serializable]
    internal sealed class ContractComponent : PipelineComponent 
    { 
        public ContractComponent(TypeInfo typeInfo, String assemblyLocation) : base(typeInfo, assemblyLocation)
        { 
        }

        public override string ToString()
        { 
            return String.Format(CultureInfo.CurrentCulture, Res.ContractToString, Name, BestAvailableLocation);
        } 
 
        internal override bool Validate(Type type, Collection warnings)
        { 
            //if (!type.Implements(new TypeInfo(typeof(IContract))))
            if (!IContractInReflectionLoaderContext.IsAssignableFrom(type))
            {
                warnings.Add(String.Format(CultureInfo.CurrentCulture, Res.ContractMustImplementIContract, Name)); 
                return false;
            } 
 
            if (!type.IsInterface)
            { 
                warnings.Add(String.Format(CultureInfo.CurrentCulture, Res.ContractMustBeInterface, Name));
                return false;
            }
 
            return base.Validate(type, warnings);
        } 
    } 
}

// 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