public virtual void CompileTimeValidate(INamedMetadataDeclaration metadata, Type typeValidated, IMessageSink messages) { // Usually I don't throw exceptions in aspect methods that are active at compile-time, but this takes the cake... if (null == messages) throw new ArgumentNullException("messages", Strings.ValidationNullMessageSink); if (!ValidateNonNullMetadata(metadata, messages)) return; if (!ValidateExceptionType(messages)) return; if (!ValidateInitializableExceptionType(messages)) return; messages.Write( new Message(MessageLocation.Of(metadata), SeverityType.Verbose, Strings.ValidationAspectPassedValidationMessageId, String.Format(CultureInfo.InvariantCulture, Strings.ValidationAspectPassedValidationMessageFormat, metadata.Name), String.Empty, Assembly.GetCallingAssembly().FullName, null)); }
public override string GetName(INamedMetadataDeclaration declaration, ReflectionNameOptions options) { // Suppress the "System" namespace. int lastDot = declaration.Name.LastIndexOf('.'); if (lastDot > 0 && declaration.Name.Substring(0, lastDot) == "System") { return(declaration.Name.Substring(lastDot + 1)); } return(base.GetName(declaration, options)); }
public override void CompileTimeValidate(INamedMetadataDeclaration metadata, Type typeValidated, IMessageSink messages) { base.CompileTimeValidate(metadata, typeValidated, messages); if (typeValidated.IsValueType && null == Nullable.GetUnderlyingType(typeValidated)) { messages.Write( new Message(MessageLocation.Of(metadata), SeverityType.Error, Strings.ErrorNotNullNonNullableMessageId, String.Format(CultureInfo.InvariantCulture, Strings.ErrorNotNullNonNullableMessageFormat, typeValidated.Name), String.Empty, Assembly.GetCallingAssembly().FullName, null)); } }
public override void CompileTimeValidate(INamedMetadataDeclaration metadata, Type typeValidated, IMessageSink messages) { base.CompileTimeValidate(metadata, typeValidated, messages); MethodName = metadata.ParentMember.Name; }
public override string GetName( INamedMetadataDeclaration declaration, ReflectionNameOptions options ) { // Suppress the "System" namespace. int lastDot = declaration.Name.LastIndexOf( '.' ); if ( lastDot > 0 && declaration.Name.Substring( 0, lastDot ) == "System" ) return declaration.Name.Substring( lastDot + 1 ); return base.GetName( declaration, options ); }
/// <summary> /// Validates that the provided metadata is not null. /// </summary> /// <param name="metadata">The metadata to do a null check on.</param> /// <param name="messages">An <see cref="IMessageSink"/> instance, used to write messages.</param> /// <returns>True if <c>metadata</c> is not null; otherwise, false.</returns> private static bool ValidateNonNullMetadata(INamedMetadataDeclaration metadata, IMessageSink messages) { bool isNotNull = null != metadata; if (!isNotNull) { messages.Write( new Message(MessageLocation.Of(metadata), SeverityType.Fatal, Strings.ErrorNullMetadataMessageId, Strings.ErrorNullMetadataMessage, String.Empty, Assembly.GetCallingAssembly().FullName, null)); } return isNotNull; }