本文整理汇总了C#中ObjectIdentifier.Prepend方法的典型用法代码示例。如果您正苦于以下问题:C# ObjectIdentifier.Prepend方法的具体用法?C# ObjectIdentifier.Prepend怎么用?C# ObjectIdentifier.Prepend使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ObjectIdentifier
的用法示例。
在下文中一共展示了ObjectIdentifier.Prepend方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ResolveOid
private static void ResolveOid(IEntity entity, ObjectIdentifier result)
{
result.Prepend(entity.Name, entity.Value);
// check parent
if (!String.IsNullOrEmpty(entity.Parent))
{
string[] pathParts = entity.Parent.Split('.');
uint value;
// all parts except the first should have their value directly or indirectly with them
if (pathParts.Length > 1)
{
for (int i=pathParts.Length-1; i>=1; i--)
{
if (uint.TryParse(pathParts[i], out value))
{
result.Prepend("", value);
}
else
{
Match m = _namedOidPathRegex.Match(pathParts[i]);
if (m.Success)
{
result.Prepend(m.Groups["Name"].Value, uint.Parse(m.Groups["Value"].Value));
}
else
{
throw new MibException("Invalid OID path detected for entity '" + entity.Name + "' in module '" + entity.Module + "'!");
}
}
}
}
// parse root part: either another entity or a standard root object
if (IsOidRoot(pathParts[0], out value))
{
result.Prepend(pathParts[0], value);
}
else
{
// try to find entity inside this module
if (entity.Module != null)
{
entity = ResolveDeclaration(entity.Module, pathParts[0]) as IEntity;
if (entity != null)
{
ResolveOid(entity, result);
}
else
{
result.Prepend("", uint.MaxValue);
}
}
else
{
result.Prepend("", uint.MaxValue);
}
}
}
}