本文整理汇总了C#中Xml.IsComparableTo方法的典型用法代码示例。如果您正苦于以下问题:C# Xml.IsComparableTo方法的具体用法?C# Xml.IsComparableTo怎么用?C# Xml.IsComparableTo使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Xml
的用法示例。
在下文中一共展示了Xml.IsComparableTo方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DiffReturnValues
/// <inheritdoc />
public IEnumerable<IAnalysisLogDiff> DiffReturnValues(Xml.Value oldValue, Xml.Value newValue)
{
// If both values are not null...
IEnumerable<IAnalysisLogDiff> list;
if (oldValue != null && newValue != null)
{
if (!newValue.IsComparableTo(oldValue))
{
var msg = string.Format(
"Items are incompatible for comparison! oldObject.Item.Type => {0}, newObject.Item.Type => {1}",
oldValue.UnderlyingType,
newValue.UnderlyingType);
throw new ArgumentException(msg);
}
if (newValue.IsPrimtive && oldValue.IsPrimtive && !newValue.AsPrimitive.Equals(oldValue.AsPrimitive))
{
list = new IAnalysisLogDiff[]
{
new ReturnValueAnalysisLogDiff(oldValue.AsPrimitive.Value, newValue.AsPrimitive.Value, newValue.AsPrimitive.FullName)
};
}
else if (newValue.IsObject && oldValue.IsObject)
{
list = this.DiffObjects(oldValue.AsObject, newValue.AsObject);
}
else
{
// No diff.
list = Enumerable.Empty<IAnalysisLogDiff>();
}
}
else if (oldValue == null && newValue == null)
{
// No diff.
list = Enumerable.Empty<IAnalysisLogDiff>();
}
else
{
// Either the old or new value is null. Not sure what happened here--should be impossible.
var msg = string.Format(
"The {0} return value was null! This indicates an analysis log file corruption. Terminating analysis!",
oldValue == null ? "old" : "current");
throw new ArgumentException(msg);
}
return list;
}