本文整理汇总了C#中ValidationErrorHandler类的典型用法代码示例。如果您正苦于以下问题:C# ValidationErrorHandler类的具体用法?C# ValidationErrorHandler怎么用?C# ValidationErrorHandler使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ValidationErrorHandler类属于命名空间,在下文中一共展示了ValidationErrorHandler类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: PeVerify
private static string[] PeVerify(byte[] peImage, int domainId, string assemblyPath)
{
lock (s_guard)
{
GCHandle pinned = GCHandle.Alloc(peImage, GCHandleType.Pinned);
try
{
IntPtr buffer = pinned.AddrOfPinnedObject();
ICLRValidator validator = (ICLRValidator)RuntimeEnvironment.GetRuntimeInterfaceAsObject(s_clsIdClrRuntimeHost, typeof(ICLRRuntimeHost).GUID);
ValidationErrorHandler errorHandler = new ValidationErrorHandler(validator);
IMetaDataDispenser dispenser = (IMetaDataDispenser)RuntimeEnvironment.GetRuntimeInterfaceAsObject(s_clsIdCorMetaDataDispenser, typeof(IMetaDataDispenser).GUID);
// the buffer needs to be pinned during validation
Guid riid = typeof(IMetaDataImport).GUID;
object metaDataImport = null;
if (assemblyPath != null)
{
dispenser.OpenScope(assemblyPath, CorOpenFlags.ofRead, ref riid, out metaDataImport);
}
else
{
dispenser.OpenScopeOnMemory(buffer, (uint)peImage.Length, CorOpenFlags.ofRead, ref riid, out metaDataImport);
}
IMetaDataValidate metaDataValidate = (IMetaDataValidate)metaDataImport;
metaDataValidate.ValidatorInit(CorValidatorModuleType.ValidatorModuleTypePE, errorHandler);
metaDataValidate.ValidateMetaData();
validator.Validate(errorHandler, (uint)domainId, ValidatorFlags.VALIDATOR_EXTRA_VERBOSE,
ulMaxError: 10, token: 0, fileName: assemblyPath, pe: buffer, ulSize: (uint)peImage.Length);
return errorHandler.GetOutput();
}
finally
{
pinned.Free();
}
}
}
示例2: Rule02
private static bool Rule02(string name, NodeIndex nodeIndex, XmlNodeList list, ValidationErrorHandler errorHandler)
{
bool result = true;
foreach (XmlElement context in list) {
XmlElement startDate = XPath.Path (context, "novation", "firstPeriodStartDate");
XmlAttribute href;
if ((startDate == null) || (href = startDate.GetAttributeNode ("href"))== null) continue;
XmlElement target = nodeIndex.GetElementById (href.Value);
if ((target == null) || !target.LocalName.Equals("party")) {
errorHandler ("305", context,
"The @href attribute on the firstPeriodStartDate must reference a party",
name, href.Value);
result = false;
}
}
return (result);
}
示例3: PerformValidation
internal bool PerformValidation(NodeIndex nodeIndex, ValidationErrorHandler errorHandler)
{
return (Validate (nodeIndex, errorHandler));
}
示例4: Rule01
private static bool Rule01(string name, NodeIndex nodeIndex, XmlNodeList list,
ValidationErrorHandler errorHandler)
{
bool result = true;
foreach (XmlElement context in list) {
XmlElement generic = XPath.Path (context, "generic");
XmlAttribute href;
XmlElement target;
if ((generic == null) ||
((href = generic.GetAttributeNode ("href")) == null) ||
((target = nodeIndex.GetElementById (href.Value)) == null)) continue;
string targetName = target.LocalName;
if (targetName.Equals ("basket") ||
targetName.Equals ("cash") ||
targetName.Equals ("commodity") ||
targetName.Equals ("deposit") ||
targetName.Equals ("bond") ||
targetName.Equals ("convertibleBond") ||
targetName.Equals ("equity") ||
targetName.Equals ("exchangeTradedFund") ||
targetName.Equals ("index") ||
targetName.Equals ("future") ||
targetName.Equals ("fxRate") ||
targetName.Equals ("loan") ||
targetName.Equals ("mortgage") ||
targetName.Equals ("mutualFund") ||
targetName.Equals ("rateIndex") ||
targetName.Equals ("simpleCreditDefautSwap") ||
targetName.Equals ("simpleFra") ||
targetName.Equals ("simpleIrSwap") ||
targetName.Equals ("dealSummary") ||
targetName.Equals ("facilitySummary")) continue;
errorHandler ("305", context,
"generic/@href must match the @id attribute of an element of type Asset",
name, targetName);
result = false;
}
return (result);
}
示例5: Rule02
private static bool Rule02(string name, NodeIndex nodeIndex, XmlNodeList list, ValidationErrorHandler errorHandler)
{
bool result = true;
foreach (XmlElement context in list) {
XmlAttribute href;
XmlElement target;
if (((href = context.GetAttributeNode ("href")) == null) ||
((target = nodeIndex.GetElementById (href.Value)) == null)) continue;
string targetName = target.LocalName;
if (targetName.Equals ("creditCurve") ||
targetName.Equals ("fxCurve") ||
targetName.Equals ("volatilityRepresentation") ||
targetName.Equals ("yieldCurve")) continue;
errorHandler ("305", context,
"@href must match the @id attribute of an element of type PricingStructure",
name, targetName);
result = false;
}
return (result);
}
示例6: Rule16
// --------------------------------------------------------------------
private static bool Rule16(string name, NodeIndex nodeIndex, ValidationErrorHandler errorHandler)
{
bool result = true;
foreach (XmlElement context in nodeIndex.GetElementsByName ("creditDefaultSwap")) {
if (Implies (
And (
Equal (
Count (XPath.Paths (context, "generalTerms", "referenceInformation", "referenceObligation")), 1),
Exists (XPath.Path (context, "cashSettlementTerms", "valuationDate", "multipleValuationDates"))),
Or (
Equal (
XPath.Path (context, "cashSettlementTerms", "valuationMethod"),
"AverageMarket"),
Or (
Equal (
XPath.Path (context, "cashSettlementTerms", "valuationMethod"),
"Highest"),
Equal (
XPath.Path (context, "cashSettlementTerms", "valuationMethod"),
"AverageHighest")))))
continue;
errorHandler ("305", context,
"If there is exactly one generalTerms/referenceInformation/referenceObligation " +
"and cashSettlementTerms/valuationDate/multipleValuationDates occurs " +
"then the value of cashSettlementTerms/valuationMethod must be " +
"AverageMarket, Highest or AverageHighest",
name, XPath.Path (context, "cashSettlementTerms", "valuationMethod").InnerText);
result = false;
}
return (result);
}
示例7: Rule13
// --------------------------------------------------------------------
private static bool Rule13(string name, NodeIndex nodeIndex, ValidationErrorHandler errorHandler)
{
bool result = true;
foreach (XmlElement context in nodeIndex.GetElementsByName ("creditDefaultSwap")) {
foreach (XmlElement buyer in XPath.Paths (context, "protectionTerms", "creditEvents", "creditEventNotice", "notifyingParty", "buyerPartyReference")) {
string buyerName;
string referenceName;
if (Equal (
buyerName = buyer.GetAttribute ("href"),
referenceName = XPath.Path (context, "generalTerms", "buyerPartyReference").GetAttribute ("href")))
continue;
errorHandler ("305", context,
"Credit event notice references buyer party reference " + buyerName +
" but general terms references " + referenceName,
name, null);
result = false;
}
}
return (result);
}
示例8: Rule11
// --------------------------------------------------------------------
private static bool Rule11(string name, NodeIndex nodeIndex, ValidationErrorHandler errorHandler)
{
bool result = true;
foreach (XmlElement trade in nodeIndex.GetElementsByName ("trade")) {
if (IsIsda2003 (trade) && IsLongForm (trade)) {
XmlElement context = XPath.Path (trade, "creditDefaultSwap", "generalTerms", "referenceInformation") as XmlElement;
if (Exists (XPath.Path (context, "allGuarantees"))) continue;
errorHandler ("305", context,
"allGuarantees element missing in protection terms",
name, null);
result = false;
}
}
return (result);
}
示例9: Rule44
// --------------------------------------------------------------------
private static bool Rule44(string name, NodeIndex nodeIndex, ValidationErrorHandler errorHandler)
{
return (Rule44 (name, nodeIndex.GetElementsByName ("creditDefaultSwap"), errorHandler));
}
示例10: Rule43
// --------------------------------------------------------------------
private static bool Rule43(string name, NodeIndex nodeIndex, ValidationErrorHandler errorHandler)
{
bool result = true;
foreach (XmlElement context in nodeIndex.GetElementsByName ("creditDefaultSwap")) {
if (!IsSingleName (context)) continue;
if (!Exists (XPath.Path(context, "feeLeg", "initialPayment"))) continue;
XmlElement payer = XPath.Path (context, "feeLeg", "initialPayment", "payerPartyReference");
XmlElement receiver = XPath.Path (context, "feeLeg", "initialPayment", "receiverPartyReference");
XmlElement seller = XPath.Path (context, "generalTerms", "sellerPartyReference");
XmlElement buyer = XPath.Path (context, "generalTerms", "buyerPartyReference");
if ((payer != null) && (seller != null) && (receiver != null) && (buyer != null)) {
if (payer.GetAttribute ("href").Equals (buyer.GetAttribute ("href")) &&
receiver.GetAttribute ("href").Equals (seller.GetAttribute ("href")))
continue;
}
errorHandler ("305", context,
"The initial payment should be paid by the protection buyer to the protection seller",
name, null);
result = false;
}
return (result);
}
示例11: Rule42
// --------------------------------------------------------------------
private static bool Rule42(string name, NodeIndex nodeIndex, ValidationErrorHandler errorHandler)
{
bool result = true;
foreach (XmlElement context in nodeIndex.GetElementsByName ("generalTerms")) {
XmlElement basket = XPath.Path (context, "basketReferenceInformation");
XmlElement substitution = XPath.Path (context, "substitution");
if ((basket == null) && (substitution != null)) {
errorHandler ("305", context,
"If basketReferenceInformation is not present then substitution must not be present.",
name, null);
result = false;
}
}
return (result);
}
示例12: Rule41
// --------------------------------------------------------------------
private static bool Rule41(string name, NodeIndex nodeIndex, ValidationErrorHandler errorHandler)
{
bool result = true;
foreach (XmlElement context in nodeIndex.GetElementsByName ("generalTerms")) {
XmlElement tranche = XPath.Path (context, "indexReferenceInformation", "tranche");
XmlElement delivery = XPath.Path (context, "modifiedEquityDelivery");
if ((tranche == null) && (delivery != null)) {
errorHandler ("305", context,
"If indexReferenceInformation/tranche is not present then modifiedEquityDelivery must not be present.",
name, null);
result = false;
}
}
return (result);
}
示例13: Rule40
private static bool Rule40(string name, XmlNodeList list, ValidationErrorHandler errorHandler)
{
bool result = true;
foreach (XmlElement context in list) {
XmlElement tranche = XPath.Path (context, "generalTerms", "indexReferenceInformation", "tranche");
XmlElement attach = XPath.Path (tranche, "attachmentPoint");
XmlElement exhaust = XPath.Path (tranche, "exhaustionPoint");
if ((attach == null) || (exhaust == null) || LessOrEqual (ToDecimal (attach), ToDecimal (exhaust))) continue;
errorHandler ("305", tranche,
"attachmentPoint must be less than or equal to exhaustionPoint.",
name, null);
result = false;
}
return (result);
}
示例14: Rule39
private static bool Rule39(string name, XmlNodeList list, ValidationErrorHandler errorHandler)
{
bool result = true;
foreach (XmlElement context in list) {
XmlElement info = XPath.Path (context, "generalTerms", "basketReferenceInformation");
XmlElement nth = XPath.Path (context, "nthToDefault");
XmlElement mth = XPath.Path (context, "mthToDefault");
if ((nth == null) || (mth == null) || (ToInteger (nth) < ToInteger (mth))) continue;
errorHandler ("305", info,
"If nthToDefault is present and mthToDefault is present then nthToDefault must be less than mthToDefault.",
name, null);
result = false;
}
return (result);
}
示例15: Rule38
private static bool Rule38(string name, XmlNodeList list, ValidationErrorHandler errorHandler)
{
bool result = true;
foreach (XmlElement context in list) {
XmlElement pool = XPath.Path (context, "generalTerms", "basketReferenceInformation", "referencePool");
XmlNodeList items = XPath.Paths (pool, "referencePoolItem", "constituentWeight", "basketPercentage");
if (items.Count == 0) continue;
Decimal total = 0;
foreach (XmlElement item in items)
total += ToDecimal (item);
if (Equal (total, decimal.One)) continue;
errorHandler ("305", pool,
"The sum of referencePoolItem/constituentWeight/basketPercentage should be equal to 1",
name, total.ToString ());
result = false;
}
return (result);
}