Giter VIP home page Giter VIP logo

Comments (7)

adamabdelhamed avatar adamabdelhamed commented on August 14, 2024

GetUsage has an overload that takes a string parameter that is the exe name. When you use the overload it doesn't try to get the assembly location automatically. You should use this in unit tests. I do it in the unit tests for the product itself.

from powerargs.

Codatrix avatar Codatrix commented on August 14, 2024

Right. Should have thought of that. Thanks. Will do.

from powerargs.

Codatrix avatar Codatrix commented on August 14, 2024

Thought about this some more:

Though you've provided a reasonable work-around which solves my current problem, I still believe that the fact that your library throws a null reference exception when used "correctly" is a bug. And by "correctly", I mean used in a way that your application support such as calling GetUsage() with no parameter.

Since GetEntryAssembly() is documented to return null under certain situations, you should be checking for null before dereferencing.

So I still believe this is a bug.

from powerargs.

alexfalkowski avatar alexfalkowski commented on August 14, 2024

Codatrix,

I agree with you, however I also think that this is opensource software and for us to embrace it means to fork it an apply the fix and ask for a pull request.

Adam would appreciate the help :)

from powerargs.

Codatrix avatar Codatrix commented on August 14, 2024

I'll see if I can find the time to do that. Thanks! :-)

from powerargs.

adamabdelhamed avatar adamabdelhamed commented on August 14, 2024

Thanks for the collaboration. It's a pretty small change. I'm thinking something like this:

        if (exeName == null)
        {
            var assembly = Assembly.GetEntryAssembly();
            if (assembly == null) throw new ArgException("PowerArgs could not determine the name of your executable automatically.  This may happen if you run GetUsage<T>() from within unit tests.  Use GetUsageT>(string exeName) in unit tests to avoid this exception.");
            exeName = Path.GetFileNameWithoutExtension(assembly.Location);
        }

Will that suit your needs?

Thanks,
Adam

from powerargs.

adamabdelhamed avatar adamabdelhamed commented on August 14, 2024

Fixed

from powerargs.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.