PostSharp.Samples

Welcome to this collection of PostSharp example projects.

You can browse these samples online and navigate the code just by clicking on code references, or you can download them on GitHub.

Project Description
Aspect Framework
PostSharp.Samples.CustomLogging Logs method calls including parameter values.
PostSharp.Samples.CustomCaching Caches the results of methods calls
PostSharp.Samples.ExceptionHandling Add parameter values to call stack in exception details. Report and then swallow exceptions in entry points.
PostSharp.Samples.AutoRetry Automatically retries a method call when it fails.
PostSharp.Samples.WeakEvent Prevents memory leaks due to events.
PostSharp.Samples.ValidateResourceString Prints a build-time warning when incorrect resource string name is passed to parameter.
PostSharp.Samples.SessionState Stores a field or property in the session state or page view state.
PostSharp.Samples.Transactions Automatically executes a method inside a transaction.
PostSharp.Samples.Profiling Measure different execution times of methods, including async methods.
PostSharp.Samples.Encryption Automatically encrypts and decrypts parameter and fields/properties
PostSharp.Samples.MiniProfiler Measures method execution time with MiniProfiler of StackExchange.
PostSharp.Samples.Persistence Persists fields or properties into the Windows registry or app.config.
PostSharp.Samples.AutoDataContract Automatically adds [DataContract] and [DataMember] attributes to derived classes and all properties
PostSharp.Samples.Authorization Requires permissions before getting or setting fields or executing methods.
PostSharp.Samples.NormalizeString Trims and lowercases strings before they are assigned to a field or property.
PostSharp.Samples.StoredProcedure Implements something like P-Invoke, but for database stored procedures.
Diagnostics
PostSharp.Samples.Logging.Console Demonstrates how to configure PostSharp Logging so that it directs its output to the system console.
PostSharp.Samples.Logging.PerRequest Shows how to have different verbosity for each request,
PostSharp.Samples.Logging.Customization Shows how to customize PostSharp Logging.
PostSharp.Samples.Logging.Etw Demonstrates how to configure PostSharp Logging so that it directs its output to ETW.
PostSharp.Samples.Logging.Etw.CustomSource Demonstrates how use PostSharp Logging with a custom ETW source (instead of the predefined one).
PostSharp.Samples.Logging.Log4Net Demonstrates how to configure PostSharp Logging so that it directs its output to log4net.
PostSharp.Samples.Logging.NLog Demonstrates how to configure PostSharp Logging so that it directs its output to NLog.
PostSharp.Samples.Logging.Serilog Demonstrates how to configure PostSharp Logging so that it directs its output to Serilog.
PostSharp.Samples.Logging.Loupe Demonstrates how to configure PostSharp Logging so that it directs its output to Loupe.
PostSharp.Samples.Logging.CommonLogging Demonstrates how to configure PostSharp Logging so that it directs its output to Common.Logging.
PostSharp.Samples.Logging.CustomBackend.ServiceStack Demonstrates how to implement a PostSharp Logging adapter for your custom logging framework.
PostSharp.Samples.Logging.Audit Shows how to append an audit record to a database when a method is invoked.
Distributed Diagnostics with Elastic Search
PostSharp.Samples.Logging.ElasticStack/MicroserviceExample The server-side service demonstrating correlation of logs of a distributed application with Elastic Search.
PostSharp.Samples.Logging.ElasticStack/ClientExample The server-side service demonstrating correlation of logs of a distributed application with Elastic Search.
XAML
PostSharp.Samples.Xaml Demonstrates a few ready-made aspects that are useful for XAML
Caching
PostSharp.Samples.Caching Caching method results with Redis and different ways to remove things from the cache.
Threading
PostSharp.Samples.Threading.PingPong The classic educational ping-pong example.
PostSharp.Samples.Threading.ThreadDispatching A simple WPF progress bar updated from a background thread.
Platform Support
PostSharp.Samples.Blazor.AutoRetry Demonstrates a custom aspect used in a Blazor application.