Title: Disambiguating an overloaded method with multiple parameters · Issue #1099 · pythonnet/pythonnet · GitHub
Open Graph Title: Disambiguating an overloaded method with multiple parameters · Issue #1099 · pythonnet/pythonnet
X Title: Disambiguating an overloaded method with multiple parameters · Issue #1099 · pythonnet/pythonnet
Description: Environment Pythonnet version: 2.3.0 and 2.4.0 Python version: 3.6.5 Operating System: W10 Details I'm having issues disambiguating an overloaded C# method that has multiple parameters. I've found #935 which is a very similar issue but c...
Open Graph Description: Environment Pythonnet version: 2.3.0 and 2.4.0 Python version: 3.6.5 Operating System: W10 Details I'm having issues disambiguating an overloaded C# method that has multiple parameters. I've found ...
X Description: Environment Pythonnet version: 2.3.0 and 2.4.0 Python version: 3.6.5 Operating System: W10 Details I'm having issues disambiguating an overloaded C# method that has multiple parameters. I'v...
Opengraph URL: https://github.com/pythonnet/pythonnet/issues/1099
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Disambiguating an overloaded method with multiple parameters","articleBody":"### Environment\r\n\r\n- Pythonnet version: 2.3.0 and 2.4.0\r\n- Python version: 3.6.5\r\n- Operating System: W10\r\n\r\n### Details\r\n\r\n- I'm having issues disambiguating an overloaded C# method that has multiple parameters. I've found #935 which is a very similar issue but can't get it to work. I'm following the same steps but I still get the same error.\r\n\r\nThe C# side\r\n```C#\r\n public enum MyEnum: byte\r\n {\r\n Success= (byte)'S',\r\n Error = (byte)'E'\r\n }\r\n\r\n public class MyClass\r\n {\r\n public Dictionary\u003cEnum, BlockingCollection\u003cISomeInterface\u003e\u003e MyDictionary { get; }\r\n\r\n public MyClass()\r\n {\r\n MyDictionary = new Dictionary\u003cEnum, BlockingCollection\u003cISomeInterface\u003e\u003e(); \r\n }\r\n }\r\n```\r\n\r\nOn the python side, I began with this code\r\n```python\r\n from System.Collections.Concurrent import BlockingCollection\r\n from MyModule import MyClass, ISomeInterface, MyEnum\r\n\r\n obj = MyClass()\r\n collection = BlockingCollection[ISomeInterface]()\r\n obj.MyDictionary.Add(MyEnum.Success, collection)\r\n```\r\nThis fails with `TypeError: No method matches given arguments for Add`. I've tried what seemed to solve it for #935 but get the same results\r\n\r\n```python\r\n from System.Collections.Concurrent import BlockingCollection\r\n from System import Enum\r\n from MyModule import MyClass, ISomeInterface, MyEnum\r\n\r\n obj = MyClass()\r\n collection = BlockingCollection[ISomeInterface]()\r\n obj.MyDictionary.Add[Enum, BlockingCollection[ISomeInterface]](MyEnum.Success, collection)\r\n```\r\n\r\nThis fails with `TypeError: No match found for given type params`\r\n\r\n- The output of `print(obj.MyDictionary.Add.__overloads__)` is\r\n\r\n```python\r\n Void Add(System.Enum, System.Collections.Concurrent.BlockingCollection`1[MyModule.ISomeInterface])\r\n```\r\n\r\n**UPDATE**\r\n\r\nRunning this code alone actually works, `add` shows as a bound method in the debugger:\r\n\r\n```python\r\nadd = obj.MyDictionary.Add.Overloads[Enum, BlockingCollection[ISomeInterface]]\r\n```\r\n\r\nHowever, attempting to call the function always fails. I've attempted passing System.byte and 0, instead of the enum, but none of them work.\r\n```python\r\nadd(MyEnum.Success, collection)\r\nobj.MyDictionary.Add[Enum, BlockingCollection[ISomeInterface]](MyEnum.Success, collection)\r\nobj.MyDictionary.Add.Overloads[Enum, BlockingCollection[ISomeInterface]](MyEnum.Success, collection)\r\n```\r\n\r\n","author":{"url":"https://github.com/integerfn","@type":"Person","name":"integerfn"},"datePublished":"2020-04-03T13:31:25.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":14},"url":"https://github.com/1099/pythonnet/issues/1099"}
| 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:64b1b0ee-a127-39fd-d470-fea8a01a2e7b |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | B52E:4969C:241A9B6:30393CD:69706337 |
| html-safe-nonce | 027cef34d33b1719e0e8515d8f8d9dd5e3129c1b40fbf0f81a2206aff238dbe2 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCNTJFOjQ5NjlDOjI0MUE5QjY6MzAzOTNDRDo2OTcwNjMzNyIsInZpc2l0b3JfaWQiOiI0OTM3Mjg3NjI0MDUwMTA3MTkxIiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | 4b827220d013fee542ea03d9c308c1022a9d3f231d5fc34182b88b51c564f08b |
| hovercard-subject-tag | issue:593384867 |
| 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/1099/issue_layout |
| twitter:image | https://opengraph.githubassets.com/3d629b16535840c8a6584a2750dfb67c5cf2fb5ad9ad166e9f85734ecfc62be0/pythonnet/pythonnet/issues/1099 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/3d629b16535840c8a6584a2750dfb67c5cf2fb5ad9ad166e9f85734ecfc62be0/pythonnet/pythonnet/issues/1099 |
| og:image:alt | Environment Pythonnet version: 2.3.0 and 2.4.0 Python version: 3.6.5 Operating System: W10 Details I'm having issues disambiguating an overloaded C# method that has multiple parameters. I've found ... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | integerfn |
| 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