Ejemplo n.º 1
0
 private static void TriggerFailureImplementation(ContractFailureKind kind, string displayMessage,
                                                  string userMessage, string conditionText, Exception innerException)
 {
     // If we're here, our intent is to pop up a dialog box (if we can).  For developers
     // interacting live with a debugger, this is a good experience.  For Silverlight
     // hosted in Internet Explorer, the assert window is great.  If we cannot
     // pop up a dialog box, throw an exception (consider a library compiled with
     // "Assert On Failure" but used in a process that can't pop up asserts, like an
     // NT Service).  For the CLR hosted by server apps like SQL or Exchange, we should
     // trigger escalation policy.
     if (!Environment.UserInteractive)
     {
         throw new ContractException(kind, displayMessage, userMessage, conditionText, innerException);
     }
     ContractHelperEx.Fail(displayMessage);
 }
Ejemplo n.º 2
0
        private static string GetDisplayMessage(ContractFailureKind failureKind, string userMessage,
                                                string conditionText)
        {
            // Well-formatted English messages will take one of four forms.  A sentence ending in
            // either a period or a colon, the condition string, then the message tacked
            // on to the end with two spaces in front.
            // Note that both the conditionText and userMessage may be null.  Also,
            // on Silverlight we may not be able to look up a friendly string for the
            // error message.  Let's leverage Silverlight's default error message there.
            var failureMessage = ContractHelperEx.GetFailureMessage(failureKind, conditionText);

            // Now add in the user message, if present.
            if (!string.IsNullOrEmpty(userMessage))
            {
                return(failureMessage + "  " + userMessage);
            }
            return(failureMessage);
        }