本文整理汇总了C#中Visitor.VisitType方法的典型用法代码示例。如果您正苦于以下问题:C# Visitor.VisitType方法的具体用法?C# Visitor.VisitType怎么用?C# Visitor.VisitType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Visitor
的用法示例。
在下文中一共展示了Visitor.VisitType方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ValidatePscxPaths
private void ValidatePscxPaths()
{
_boundPaths = new List<Pair<PropertyInfo, PscxPathAttribute>>();
var visitor = new Visitor(this);
visitor.VisitType(GetType());
foreach (var boundPath in _boundPaths)
{
PropertyInfo parameter = boundPath.First;
string parameterName = parameter.Name;
// retrieve [PscxPath] attribute
PscxPathAttribute pathAttrib = boundPath.Second;
// get property value
object value = parameter.GetValue(this, null);
if ((value != null) &&
// allow runtime modification from derived classes
OnValidatePscxPath(parameterName, pathAttrib))
{
WriteDebug("Validating " + parameterName);
PscxPathInfo[] pscxPaths = null;
// may be array
if (value is Array)
{
pscxPaths = value as PscxPathInfo[];
}
else
{
var pscxPath = value as PscxPathInfo;
if (pscxPath != null)
{
pscxPaths = new PscxPathInfo[] { pscxPath };
}
}
if (pscxPaths != null)
{
foreach (PscxPathInfo pscxPath in pscxPaths)
{
ValidatePscxPath(parameterName, pathAttrib, pscxPath);
}
}
}
else
{
WriteDebug("Skipping " + parameterName);
}
}
}