Open sandboxFocus
  • TOC

Post­Sharp Documentation

Introduction

Deployment and Configuration

Adding Aspects to Code

Logging

Contracts

INotify­Property­Changed

Weak Event

XAML

Parent/Child, Visitor and Disposable

Undo/Redo

Caching

Multithreading

Developing Custom Aspects

Validating Architecture

Testing and Debugging

Miscellaneous

API Reference

Post­Sharp

Post­Sharp.​Aspects

Post­Sharp.​Aspects.​Advices

Post­Sharp.​Aspects.​Configuration

Post­Sharp.​Aspects.​Dependencies

Post­Sharp.​Aspects.​Internals

Post­Sharp.​Aspects.​Serialization

Post­Sharp.​Collections

Post­Sharp.​Constraints

Post­Sharp.​Extensibility

Post­Sharp.​Extensibility.​Build­Time­Logging

Post­Sharp.​Patterns

Post­Sharp.​Patterns.​Caching

Post­Sharp.​Patterns.​Caching.​Backends

Post­Sharp.​Patterns.​Caching.​Backends.​Azure

Post­Sharp.​Patterns.​Caching.​Backends.​Redis

Post­Sharp.​Patterns.​Caching.​Dependencies

Post­Sharp.​Patterns.​Caching.​Formatters

Post­Sharp.​Patterns.​Caching.​Implementation

Post­Sharp.​Patterns.​Caching.​Locking

Post­Sharp.​Patterns.​Caching.​Serializers

Post­Sharp.​Patterns.​Caching.​Value­Adapters

Post­Sharp.​Patterns.​Collections

Post­Sharp.​Patterns.​Collections.​Advices

Post­Sharp.​Patterns.​Contracts

Post­Sharp.​Patterns.​Diagnostics

Post­Sharp.​Patterns.​Diagnostics.​Adapters.​Asp­Net­Core

Post­Sharp.​Patterns.​Diagnostics.​Adapters.​Asp­Net­Framework

Post­Sharp.​Patterns.​Diagnostics.​Adapters.​Diagnostic­Source

Post­Sharp.​Patterns.​Diagnostics.​Adapters.​Http­Client

Post­Sharp.​Patterns.​Diagnostics.​Audit

Post­Sharp.​Patterns.​Diagnostics.​Backends

Post­Sharp.​Patterns.​Diagnostics.​Backends.​Application­Insights

Post­Sharp.​Patterns.​Diagnostics.​Backends.​Audit

Post­Sharp.​Patterns.​Diagnostics.​Backends.​Common­Logging

Post­Sharp.​Patterns.​Diagnostics.​Backends.​Console

Post­Sharp.​Patterns.​Diagnostics.​Backends.​Event­Source

Post­Sharp.​Patterns.​Diagnostics.​Backends.​Log4Net

Post­Sharp.​Patterns.​Diagnostics.​Backends.​Microsoft

Post­Sharp.​Patterns.​Diagnostics.​Backends.​Multiplexer

Post­Sharp.​Patterns.​Diagnostics.​Backends.​NLog

Post­Sharp.​Patterns.​Diagnostics.​Backends.​Null

Post­Sharp.​Patterns.​Diagnostics.​Backends.​Serilog

Post­Sharp.​Patterns.​Diagnostics.​Backends.​Trace

Post­Sharp.​Patterns.​Diagnostics.​Backends.​Trace­Source

Post­Sharp.​Patterns.​Diagnostics.​Contexts

Post­Sharp.​Patterns.​Diagnostics.​Correlation

Post­Sharp.​Patterns.​Diagnostics.​Custom

Post­Sharp.​Patterns.​Diagnostics.​Custom.​Messages

Post­Sharp.​Patterns.​Diagnostics.​Formatters

Post­Sharp.​Patterns.​Diagnostics.​Record­Builders

Post­Sharp.​Patterns.​Diagnostics.​Threading­Instrumentation

Post­Sharp.​Patterns.​Diagnostics.​Transactions

Post­Sharp.​Patterns.​Diagnostics.​Transactions.​Model

Post­Sharp.​Patterns.​Dynamic­Advising

Post­Sharp.​Patterns.​Formatters

Post­Sharp.​Patterns.​Model

Post­Sharp.​Patterns.​Model.​Controls

Post­Sharp.​Patterns.​Model.​Type­Adapters

Post­Sharp.​Patterns.​Recording

Post­Sharp.​Patterns.​Recording.​Operations

Post­Sharp.​Patterns.​Threading

Post­Sharp.​Patterns.​Threading.​Models

Post­Sharp.​Patterns.​Utilities

Post­Sharp.​Patterns.​Xaml

Post­Sharp.​Reflection

Post­Sharp.​Reflection.​Method­Body

Post­Sharp.​Serialization

  • Article

Class LocationContractAttribute

Base class for other custom attributes in this namespace.

Namespace: PostSharp.Patterns.Contracts
Assembly: PostSharp.Patterns.Common.dll
Syntax
[AspectConfiguration(SerializerType = typeof(MsilAspectSerializer))]
[MulticastAttributeUsage(MulticastTargets.Field|MulticastTargets.Property|MulticastTargets.Parameter|MulticastTargets.ReturnValue, TargetMemberAttributes = MulticastAttributes.NonAbstract|MulticastAttributes.NonLiteral, Inheritance = MulticastInheritance.Multicast, AllowMultiple = false, PersistMetaData = true)]
[AttributeUsage(AttributeTargets.Property|AttributeTargets.Field|AttributeTargets.Parameter|AttributeTargets.ReturnValue)]
[ProvideAspectRole("Validation")]
public abstract class LocationContractAttribute : MulticastAttribute, ILocationLevelAspect, IAspect
Remarks

Basic error message is identified by LocationContractErrorMessage and obtained from the provider set in LocalizedTextProvider.

All formatting strings have the following parameters replaced:

  • {0} is replaced by the location name.
  • {1} is replaced by the location kind.
  • {2} is replaced by a string containing both location kind and name.
  • {3} is replaced by the value which caused the error when being assigned to the location.
  • Further parameters are described in the remarks sections of contracts which override the GetErrorMessageArguments() method.

Note that an array of error message arguments is cached for each location.

Constructors

Name Description
LocationContractAttribute()

Initializes a new LocationContractAttribute.

Properties

Name Description
ErrorMessage

Gets or sets the error message formatting string.

Methods

Name Description
CompileTimeValidate(LocationInfo)

Validates that the current aspect has been applied to a valid location.

CreateArgumentException(object, string, LocationKind)

Creates an ArgumentException with an error message formatted from ErrorMessage and given concrete values.

CreateArgumentNullException(object, string, LocationKind)

Creates an ArgumentNullException with an error message formatted from ErrorMessage and given concrete values.

CreateArgumentOutOfRangeException(object, string, LocationKind)

Creates an ArgumentOutOfRangeException with an error message formatted from ErrorMessage and given concrete values.

CreatePostconditionFailedException(object, string, LocationKind)

Creates an PostconditionFailedException with an error message formatted from ErrorMessage and given concrete values.

FormatErrorMessage(object, string, LocationKind)

Formats the ErrorMessage with concrete values.

GetErrorMessage()

Gets unformatted error message as defined by the instance.

GetErrorMessageArguments()

Gets values of additional arguments for error message associated with particular instance of LocationContractAttribute. There arguments can be referenced from error message string by {4}, {5} and so on.

RuntimeInitialize(LocationInfo)

Initializes the aspect at runtime.

SelectSelfOrNothing(LocationInfo)

A pointcut that selects the target location of the current aspect, unless the target location is a dependency property or an attached property.

ValidateValueDynamic(object, string, LocationKind, LocationValidationContext)

Validates a weakly-typed (boxed) value, typically the value of a dependency property or an attached property.

  • Navigation