References.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 / WF / Activities / Rules / References.cs / 1305376 / References.cs

                            // ---------------------------------------------------------------------------- 
// Copyright (C) 2005 Microsoft Corporation All Rights Reserved
// ---------------------------------------------------------------------------

#define CODE_ANALYSIS 
using System.CodeDom;
using System.Collections.Generic; 
using System.Diagnostics.CodeAnalysis; 
using System.Reflection;
 
namespace System.Workflow.Activities.Rules
{
    public class RulePathQualifier
    { 
        private string name;
        private RulePathQualifier next; 
 
        public RulePathQualifier(string name, RulePathQualifier next)
        { 
            this.name = name;
            this.next = next;
        }
 
        public string Name
        { 
            get { return name; } 
        }
 
        public RulePathQualifier Next
        {
            get { return next; }
        } 
    }
 
    public class RuleAnalysis 
    {
        private RuleValidation validation; 
        private bool forWrites;
        private Dictionary symbols = new Dictionary();

        public RuleAnalysis(RuleValidation validation, bool forWrites) 
        {
            this.validation = validation; 
            this.forWrites = forWrites; 
        }
 
        internal RuleValidation Validation
        {
            get { return validation; }
        } 

        public bool ForWrites 
        { 
            get { return forWrites; }
        } 

        public void AddSymbol(string symbol)
        {
            symbols[symbol] = null; 
        }
 
 
 		[SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate")]
		public ICollection GetSymbols() 
        {
            List symbolList = new List(symbols.Keys.Count);

            foreach (KeyValuePair pair in symbols) 
                symbolList.Add(pair.Key);
 
            return symbolList; 
        }
 
        #region RuleAttribute Analysis

        internal void AnalyzeRuleAttributes(MemberInfo member, CodeExpression targetExpr, RulePathQualifier targetQualifier, CodeExpressionCollection argExprs, ParameterInfo[] parameters, List attributedExprs)
        { 
            object[] attrs = member.GetCustomAttributes(typeof(RuleAttribute), true);
            if (attrs != null && attrs.Length > 0) 
            { 
                RuleAttribute[] ruleAttrs = (RuleAttribute[])attrs;
                for (int i = 0; i < ruleAttrs.Length; ++i) 
                    ruleAttrs[i].Analyze(this, member, targetExpr, targetQualifier, argExprs, parameters, attributedExprs);
            }
        }
 
        #endregion
    } 
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
                        

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