Title: Classes without __namespace__ cannot be used for reflection · Issue #1774 · pythonnet/pythonnet · GitHub
Open Graph Title: Classes without __namespace__ cannot be used for reflection · Issue #1774 · pythonnet/pythonnet
X Title: Classes without __namespace__ cannot be used for reflection · Issue #1774 · pythonnet/pythonnet
Description: Environment Pythonnet version: 3.0.0-preview2022-04-11 Python version: 3.10 Operating System: MacOS .NET Runtime: .net 6 Details My software does lots of reflection on "plugin" types. Simply inheriting from a specific type is enough in C...
Open Graph Description: Environment Pythonnet version: 3.0.0-preview2022-04-11 Python version: 3.10 Operating System: MacOS .NET Runtime: .net 6 Details My software does lots of reflection on "plugin" types. Simply inheri...
X Description: Environment Pythonnet version: 3.0.0-preview2022-04-11 Python version: 3.10 Operating System: MacOS .NET Runtime: .net 6 Details My software does lots of reflection on "plugin" types. Sim...
Opengraph URL: https://github.com/pythonnet/pythonnet/issues/1774
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Classes without __namespace__ cannot be used for reflection","articleBody":"### Environment\r\n\r\n- Pythonnet version: 3.0.0-preview2022-04-11\r\n- Python version: 3.10\r\n- Operating System: MacOS\r\n- .NET Runtime: .net 6\r\n\r\n### Details\r\n\r\nMy software does lots of reflection on \"plugin\" types. Simply inheriting from a specific type is enough in C#, but when I use python.net I also have to define `__namespace__`. Since my users generally have the namespace being \u003cModule\u003e.\u003cClass\u003e, there is no logic reason for them to have to do this.\r\n\r\nI can see which part of the code causes this:\r\n```cs\r\n // from MetaType.cs:133 (git: 7247da55c174be1b733e5f9fc4e1c356f6c42dc4)\r\n if (clsDict.HasKey(\"__assembly__\") || clsDict.HasKey(\"__namespace__\"))\r\n {\r\n return TypeManager.CreateSubType(name, base_type, clsDict);\r\n }\r\n```\r\n\r\nI am wonder if we could broaden the cases where TypeManager.CreateSubType is used. For example in cases where the super class is a type created with CreateSubType, or just any .NET class in general. Maybe it could also be if the super class implements a specific interface.\r\n\r\n _TODO_\r\n\r\nAdd a way to not have to specify __namespace__ in the class in order for reflection to work.","author":{"url":"https://github.com/rmadsen-ks","@type":"Person","name":"rmadsen-ks"},"datePublished":"2022-04-27T07:50:32.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":11},"url":"https://github.com/1774/pythonnet/issues/1774"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:4a3b5f29-8f43-5e91-be39-2d48c8391f45 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | A774:138A2B:23F4DDC:3051721:697063C2 |
| html-safe-nonce | bd192f8265f1fcc7f05a4b7ed5b97fdac6b877b417d0c5fb98b3bb965ff4ab26 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBNzc0OjEzOEEyQjoyM0Y0RERDOjMwNTE3MjE6Njk3MDYzQzIiLCJ2aXNpdG9yX2lkIjoiMzUyMjY3MTE4OTQxMjU3MDA1MCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | afb4726c845fbb599c8753054ce691925c83b0fe7ca23ee69d65e9a278675ead |
| hovercard-subject-tag | issue:1216946822 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/pythonnet/pythonnet/1774/issue_layout |
| twitter:image | https://opengraph.githubassets.com/9238b3cc5c76dce056708d2f6ad3b0e68b617512bc0216fb110e0c4ac77d28f7/pythonnet/pythonnet/issues/1774 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/9238b3cc5c76dce056708d2f6ad3b0e68b617512bc0216fb110e0c4ac77d28f7/pythonnet/pythonnet/issues/1774 |
| og:image:alt | Environment Pythonnet version: 3.0.0-preview2022-04-11 Python version: 3.10 Operating System: MacOS .NET Runtime: .net 6 Details My software does lots of reflection on "plugin" types. Simply inheri... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | rmadsen-ks |
| hostname | github.com |
| expected-hostname | github.com |
| None | 9920a62ba22d06470388e2904804fb7e5ec51c9e35f81784e9191394c74b2bd2 |
| turbo-cache-control | no-preview |
| go-import | github.com/pythonnet/pythonnet git https://github.com/pythonnet/pythonnet.git |
| octolytics-dimension-user_id | 6050430 |
| octolytics-dimension-user_login | pythonnet |
| octolytics-dimension-repository_id | 14748123 |
| octolytics-dimension-repository_nwo | pythonnet/pythonnet |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 14748123 |
| octolytics-dimension-repository_network_root_nwo | pythonnet/pythonnet |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 7d6181066430cc06553c8396ca201e194ae33cb9 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width