AspectSharp.Builder.XmlEngineBuilder.LoadAspects C# (CSharp) Method

LoadAspects() private method

private LoadAspects ( ) : void
return void
		private void LoadAspects()
		{
			XmlNodeList aspects = _node.SelectNodes("aspect");
			foreach (XmlNode node in aspects)
			{
				String name = GetRequiredAttribute(node, "name");
				AspectDefinition aspect = new AspectDefinition(LexicalInfo.Empty, name);
				Configuration.Aspects.Add(aspect);

				XmlNode singleType = node.SelectSingleNode("for/singletype");
				if (singleType != null)
				{
					aspect.TargetType = new TargetTypeDefinition();
					aspect.TargetType.SingleType = CreateTypeReference(singleType);
					aspect.TargetType.TargetStrategy = TargetStrategyEnum.SingleType;
				}

				XmlNode assignableType = node.SelectSingleNode("for/assignable");
				if (assignableType != null)
				{
					aspect.TargetType = new TargetTypeDefinition();
					aspect.TargetType.AssignType = CreateTypeReference(assignableType);
					aspect.TargetType.TargetStrategy = TargetStrategyEnum.Assignable;
				}

				XmlNodeList mixins = node.SelectNodes("mixin");
				foreach (XmlNode inner in mixins)
				{
					MixinDefinition def = new MixinDefinition(LexicalInfo.Empty);
					def.TypeReference = CreateTypeReference(inner);
					aspect.Mixins.Add(def);
				}

				XmlNodeList pointcuts = node.SelectNodes("pointcut");
				foreach (XmlNode inner in pointcuts)
				{
					PointCutDefinition def = CreatePointCutDefinition(inner);
					aspect.PointCuts.Add(def);
				}
			}
		}