• mordack550@lemmy.world
    link
    fedilink
    arrow-up
    16
    ·
    11 months ago

    Your assumption that “using reflection means the code is wrong” seems a bit extreme, at least in .Net. Every time you interact with types, you use reflection. Xml and Json serialization/deserialization uses reflection, and also Entity Framework. If you use mocking in test you are using reflection.

    We have an excel export functionality on our sites that uses reflection because we can write 1 function and export any types we want, thanks to reflection.

      • A good sense of “code smell” is one of the most valuable programming skills. I think your “probably” is justified: if you’re doing X, you should look twice at how you’re doing it. Maybe it’s right, but usually it’s not, so it’s worth a pause and a thought.

        • dzervas@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          11 months ago

          huh, you’re right! I’m trained on a different kind of code. In C# in particular, which I use mostly to do sneaky stuff (patch/inject runtime code to, um, “fix” it) and when I see a project that it’s too clean it smells

          I also see python code (I code regular stuff in it) that could be written much more cleanly using monkey-patching

    • Kogasa@programming.dev
      link
      fedilink
      arrow-up
      2
      ·
      11 months ago

      Modern .NET is reducing dependence on reflection. System.Text.JSON and other core libraries have leveraged source generation to produce AOT + trim friendly, reflection free code. But yeah, it’s not a taboo like say dynamic, it’s perfectly normal to use reflection in idiomatic C# code.