Feature Requests

I suggest you ...

(thinking…)

Enter your idea and we'll search to see if someone has already suggested it.

If a similar idea already exists, you can support and comment on it.

If it doesn't exist, you can post your idea so others can support it.

Enter your idea and we'll search to see if someone has already suggested it.

  • Hot ideas
  • Top ideas
  • New ideas
  • My feedback
  1. Support for C# 7.3

    A friendly warning appears in the output window after C# 7.3 project is built with PostSharp 6.0.18 - suggesting the latest PostSharp version (as of this post writing) only officially supports up to C# 7.2.

    I'd appreciate if we could have C# 7.3 support in PostSharp 6 (perhaps next update)?

    Here goes more details of mine development machine:

    Running on environment:
    Windows 10 (x64)
    .NET Framework 4.7.1
    Visual Studio Enterprise 2017 (version 15.7.5)
    PostSharp (version 6.0.18)

    Steps to reproduce:
    Create a new C# Console application (targetting .NET Framework 4.7.1), and enable PostSharp for the project.
    Go to project's properties. Select…

    1 vote
    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      Signed in as (Sign out)

      We’ll send you updates on this idea

    • Add support JetBrains Rider IDE

      Please add PostSharp support for JetBrains IDE Rider.

      3 votes
      Sign in
      Check!
      (thinking…)
      Reset
      or sign in with
      • facebook
      • google
        Password icon
        Signed in as (Sign out)

        We’ll send you updates on this idea

      • Provide enhanced support for the "current class logger" custom message logging idiom

        Provide enhanced support for the "current class logger" custom message logging idiom. Notably:

        1. Remove the need to declare boilerplate like:

        class Foo
        {
        static readonly Logger _logger = Logger.GetLogger( LoggingRoles.Custom, typeof( Foo ) );

        void Bar()
        {
        _logger.Write( LogLevel.Debug, "Hello!" );
        }
        }

        most likely by providing a class with static methods, for example:

        class Foo
        {
        void Bar()
        {
        CurrentClassLogger.Write( LogLevel.Debug, "Hello!" );
        }
        }

        2. Further to (1), honour the AllowDynamicEnabling=false configuration setting around invocations of current class logger logging methods.

        3. Further to (2), to allow users to JIT-away blocks of code that are only used…

        1 vote
        Sign in
        Check!
        (thinking…)
        Reset
        or sign in with
        • facebook
        • google
          Password icon
          Signed in as (Sign out)

          We’ll send you updates on this idea

          backlogged  ·  1 comment  ·  Diagnostics  ·  Admin →
        • Trace all methods called within a specific method

          It will be great if I could get execution time of all methods executed during execution of specific method.

          1 vote
          Sign in
          Check!
          (thinking…)
          Reset
          or sign in with
          • facebook
          • google
            Password icon
            Signed in as (Sign out)

            We’ll send you updates on this idea

          • Trace all methods called within a specific method

            It will be great if I could get execution time of all methods executed during execution of specific method.

            0 votes
            Sign in
            Check!
            (thinking…)
            Reset
            or sign in with
            • facebook
            • google
              Password icon
              Signed in as (Sign out)

              We’ll send you updates on this idea

            • Add OnEntryAsync etc to OnMethodBoundaryAspect

              Currently, OnEntry etc are all void methods, meaning they're not inherently async friendly. It's becoming exceedingly rare to be able to write code without calling async methods these days, and it's more and more common to need to call async methods from within an OnMethodBoundary aspect (database or web service calls especially).

              The naïve approach of simply changing the override signature to make the aspect async void in order to be able to await within the aspect has subtle issues which are not intuitive to debug.

              Ideally, we'd have additional overrides available in OnMethodBoundaryAspect for Task OnEntryAsync and Task OnExitAsync…

              0 votes
              Sign in
              Check!
              (thinking…)
              Reset
              or sign in with
              • facebook
              • google
                Password icon
                Signed in as (Sign out)

                We’ll send you updates on this idea

              • Allow Dynamic Introduction of Static Members and Module Initializers

                I understand that at the IL level these are actually two separate types of injection, but I have on several occasions wished I could add a module initializer to an assembly from an aspect provider, not by marking an existing static member as one but by including the module initialization behavior in the aspect itself. Similarly, there are a few types which could have benefited from automatic introduction of static members (perhaps a new StaticTypeLevelAspect base class?). I imagine these are similar in some manner of abstract implementation detail, yet wind up being somewhat unrelated due to the way module…

                1 vote
                Sign in
                Check!
                (thinking…)
                Reset
                or sign in with
                • facebook
                • google
                  Password icon
                  Signed in as (Sign out)

                  We’ll send you updates on this idea

                • 2 votes
                  Sign in
                  Check!
                  (thinking…)
                  Reset
                  or sign in with
                  • facebook
                  • google
                    Password icon
                    Signed in as (Sign out)

                    We’ll send you updates on this idea

                  • generate method caching key automatically

                    I've came up with a solution for generating the caching key automatically especially for non-primitive complex types such as (student) [without using hashcode method]
                    my idea is specifying the important properties in the caching attribute
                    ~ i've exerted a considerable effort in that solution ~Contact me for more details if you are interested. ~best wishes

                    1 vote
                    Sign in
                    Check!
                    (thinking…)
                    Reset
                    or sign in with
                    • facebook
                    • google
                      Password icon
                      Signed in as (Sign out)

                      We’ll send you updates on this idea

                      backlogged  ·  2 comments  ·  Caching  ·  Admin →
                    • OnPropertyNameChanged, OnPropertyNameChanging callbacks

                      We often want to do something when a certain property value changes. Therefore, it will be very convenient if in the case of a value change, the PostSharp library will run a predefined function.

                      For example, in ViewModel there is a property named ProductId.

                      The programmer will be able to write a function called OnProductIdChanged that will be executed if the ProductId value changes.

                      How it will happen: When the value of a property changes, the PostSharp library checks whether there is a function named OnPropertyNameChanged. If it does, it will be executed.

                      This need is so common, and saves…

                      2 votes
                      Sign in
                      Check!
                      (thinking…)
                      Reset
                      or sign in with
                      • facebook
                      • google
                        Password icon
                        Signed in as (Sign out)

                        We’ll send you updates on this idea

                      • Logging - Support for obfuscation

                        The logging feature in PostSharp 5.0 is not designed for obfuscation. The idea is to make it obfuscation-friendly. Some problems to address are:

                        1. When type names are obfuscated, the hierarchy of namespaces (LoggingNamespaceSource) is lost.
                        2. Member names are not obfuscated.
                        3. Source files, lines and columns are not obfuscated.

                        1 vote
                        Sign in
                        Check!
                        (thinking…)
                        Reset
                        or sign in with
                        • facebook
                        • google
                          Password icon
                          Signed in as (Sign out)

                          We’ll send you updates on this idea

                          0 comments  ·  Diagnostics  ·  Admin →
                        • Logging - Add support for event properties in the Logger class

                          Like for instance LogEventInfo in NLog.

                          2 votes
                          Sign in
                          Check!
                          (thinking…)
                          Reset
                          or sign in with
                          • facebook
                          • google
                            Password icon
                            Signed in as (Sign out)

                            We’ll send you updates on this idea

                            backlogged  ·  0 comments  ·  Diagnostics  ·  Admin →
                          • Opt out of NotifyPropertyChanged aspect

                            NotifyPropertyChanged generates an unbearable overhead if the call count reaches millions of times.

                            Often the concerning properties are read-only (e.g. an ID), so wouldn't need PropertyChanged support at all.

                            I would like a way to opt out of PropertyChanged for individual properties.

                            1 vote
                            Sign in
                            Check!
                            (thinking…)
                            Reset
                            or sign in with
                            • facebook
                            • google
                              Password icon
                              Signed in as (Sign out)

                              We’ll send you updates on this idea

                            • Change misleading alternative in Niche Languages column

                              Here is page https://www.postsharp.net/alternatives.

                              Here is column header
                              ```
                              Niche Languages
                              F#, Erlang
                              ```

                              I doubt Erlang relates to .NET as viable alternative at at all.
                              Niche Language which is Niche and is concurrent of Postsharp is https://github.com/rsdn/nemerle.

                              What `niche language` means?
                              F# may be `niche` as current number of users.
                              But F# is NOT Niche about its applicability. Its applicable in areas of scripting and tooling and data munging and secured engineering is LARGER than of C#. In this sense C# is `niche`.

                              About F#. Your statements are wrong and do you bad job advertising Postsharp product…

                              1 vote
                              Sign in
                              Check!
                              (thinking…)
                              Reset
                              or sign in with
                              • facebook
                              • google
                                Password icon
                                Signed in as (Sign out)

                                We’ll send you updates on this idea

                              • ReaderWriterSynchronized Model should allow finding out what lock is held at the moment

                                I want to put assertions in my code like "must not have writer lock here".

                                It is crucial to know what lock is held in a certain situation.
                                When I apply attributes (Reader, Writer, ExplicitlySynchronized, Yielder) I make assumptions on what they will do, but there is no way to check my assumptions.

                                I tried using the IConcurrencyController.CheckAccess method, but it does not do what I need.

                                2 votes
                                Sign in
                                Check!
                                (thinking…)
                                Reset
                                or sign in with
                                • facebook
                                • google
                                  Password icon
                                  Signed in as (Sign out)

                                  We’ll send you updates on this idea

                                  backlogged  ·  2 comments  ·  Threading  ·  Admin →
                                • Support auto-property initializer construction for LocationInterceptionAspects

                                  The method OnSetValue() of the LocationInterceptionAspect isn´t called when you initialize your properties using auto-property initiliazers. This can be confusing because you expect that your aspect will be called if a property value is changed, no matter where and how.

                                  1 vote
                                  Sign in
                                  Check!
                                  (thinking…)
                                  Reset
                                  or sign in with
                                  • facebook
                                  • google
                                    Password icon
                                    Signed in as (Sign out)

                                    We’ll send you updates on this idea

                                  • Detection of inadequate "SkipPostSharp" flag

                                    Sometimes someone switches on the SkipPostSharp flag in a project, then a few months later, someone else adds some aspect to this project, and wonders why it does not execute properly. Sometimes this is obvious, sometimes not. For the cases when it is not obvious, there could be a special build flag, applies solution-wide, that would emit an *error* if SkipPostSharp is set but PostSharp is required anyway.

                                    0 votes
                                    Sign in
                                    Check!
                                    (thinking…)
                                    Reset
                                    or sign in with
                                    • facebook
                                    • google
                                      Password icon
                                      Signed in as (Sign out)

                                      We’ll send you updates on this idea

                                    • Clonable

                                      Automatic implementation of IClonable

                                      0 votes
                                      Sign in
                                      Check!
                                      (thinking…)
                                      Reset
                                      or sign in with
                                      • facebook
                                      • google
                                        Password icon
                                        Signed in as (Sign out)

                                        We’ll send you updates on this idea

                                      • Equality aspect

                                        Automatic generation of Equals and GetHashCode.

                                        0 votes
                                        Sign in
                                        Check!
                                        (thinking…)
                                        Reset
                                        or sign in with
                                        • facebook
                                        • google
                                          Password icon
                                          Signed in as (Sign out)

                                          We’ll send you updates on this idea

                                        • Implement Singleton pattern

                                          Have you planned to add a quick way to implement a C# singleton for a class ?

                                          2 votes
                                          Sign in
                                          Check!
                                          (thinking…)
                                          Reset
                                          or sign in with
                                          • facebook
                                          • google
                                            Password icon
                                            Signed in as (Sign out)

                                            We’ll send you updates on this idea

                                          ← Previous 1 3
                                          • Don't see your idea?

                                          Feedback and Knowledge Base