René's URL Explorer Experiment


Title: Python classes cannot inherit from C# interfaces that themselves inherit from C# interfaces with methods · Issue #2526 · pythonnet/pythonnet · GitHub

Open Graph Title: Python classes cannot inherit from C# interfaces that themselves inherit from C# interfaces with methods · Issue #2526 · pythonnet/pythonnet

X Title: Python classes cannot inherit from C# interfaces that themselves inherit from C# interfaces with methods · Issue #2526 · pythonnet/pythonnet

Description: Python classes cannot inherit from C# interfaces that themselves inherit from C# interfaces with methods: namespace A { public interface B { void C(); } public interface D : B { } } import clr clr.AddReference('A') import A class E(A.D):...

Open Graph Description: Python classes cannot inherit from C# interfaces that themselves inherit from C# interfaces with methods: namespace A { public interface B { void C(); } public interface D : B { } } import clr clr....

X Description: Python classes cannot inherit from C# interfaces that themselves inherit from C# interfaces with methods: namespace A { public interface B { void C(); } public interface D : B { } } import clr clr....

Opengraph URL: https://github.com/pythonnet/pythonnet/issues/2526

X: @github

direct link

Domain: github.com


Hey, it has json ld scripts:
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Python classes cannot inherit from C# interfaces that themselves inherit from C# interfaces with methods","articleBody":"Python classes cannot inherit from C# interfaces that themselves inherit from C# interfaces with methods:\r\n\r\n```cs\r\nnamespace A\r\n{\r\n    public interface B\r\n    {\r\n        void C();\r\n    }\r\n\r\n    public interface D : B\r\n    {\r\n    }\r\n}\r\n```\r\n\r\n```python\r\nimport clr\r\n\r\nclr.AddReference('A')\r\nimport A\r\n\r\nclass E(A.D):\r\n    __namespace__ = 'F'\r\n    def C(self):\r\n        pass\r\n```\r\n\r\nOutput:\r\n\r\n```\r\nTraceback (most recent call last):\r\n  File \"\u003cstdin\u003e\", line 6, in \u003cmodule\u003e\r\nTypeError: Failed to create Python type for F.E\r\n```\r\n\r\nExtending from `B` works. It also works if `C` is removed from `B`.\r\n\r\nPossibly related to #2511. Reverting to 3.0.3 (before 9ebfbde3) provides the moderately-more-useful error `TypeError: VTable setup of type F.E failed`.\r\n\r\nPlease do **NOT** convert this to a discussion. It is a real bug that requires fixing. As noted above, providing a definition for `C` does not affect whether the bug occurs.\r\n\r\nI have tested this with mono 6.8 and 6.12, as well as with MSCV. The latter gives the slightly-different error:\r\n\r\n```\r\nTraceback (most recent call last):\r\n  File \"\u003cstdin\u003e\", line 6, in \u003cmodule\u003e\r\n    class E(A.D):\r\nTypeError: Method 'C' in type 'F.E' from assembly 'Python.Runtime.Dynamic, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.\r\n```\r\n\r\nNote that `C` was defined as above.\r\n\r\n---\r\n\r\nAs a workaround, the following can be done...\r\n\r\n```python\r\nimport clr\r\n\r\nclr.AddReference('A')\r\nimport A\r\n\r\nclass E(A.B):\r\n    __namespace__ = 'F'\r\n\r\nclass G(E, A.D):\r\n    __namespace__ = 'F'\r\n    def C(self):\r\n        pass\r\n\r\nG().C()\r\n```\r\n\r\nAnd for some reason C has to be implemented in G and not E:\r\n\r\n```\r\nSystem.NotImplementedException: Python object does not have a 'C' method\r\n  at Python.Runtime.PythonDerivedType.InvokeMethodVoid (Python.Runtime.IPythonDerivedType obj, System.String methodName, System.String origMethodName, System.Object[] args, System.RuntimeMethodHandle methodHandle, System.RuntimeTypeHandle declaringTypeHandle) [0x00151] in \u003ce8135b23d9064b84a255057569ff100a\u003e:0 \r\n  at F.E.C () [0x00000] in \u003cd16dd79070534f72b8760f94ab2e0924\u003e:0 \r\n  at F.G._E__C () [0x00000] in \u003cd16dd79070534f72b8760f94ab2e0924\u003e:0 \r\n  at (wrapper managed-to-native) System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo,object,object[],System.Exception\u0026)\r\n  at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0007c] in \u003c12b418a7818c4ca0893feeaaf67f1e7f\u003e:0 \r\n\r\nThe above exception was the direct cause of the following exception:\r\n\r\nTraceback (most recent call last):\r\n  File \"\u003cstdin\u003e\", line 14, in \u003cmodule\u003e\r\nSystem.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---\u003e System.NotImplementedException: Python object does not have a 'C' method\r\n  at Python.Runtime.PythonDerivedType.InvokeMethodVoid (Python.Runtime.IPythonDerivedType obj, System.String methodName, System.String origMethodName, System.Object[] args, System.RuntimeMethodHandle methodHandle, System.RuntimeTypeHandle declaringTypeHandle) [0x00151] in \u003ce8135b23d9064b84a255057569ff100a\u003e:0 \r\n  at F.E.C () [0x00000] in \u003cd16dd79070534f72b8760f94ab2e0924\u003e:0 \r\n  at F.G._E__C () [0x00000] in \u003cd16dd79070534f72b8760f94ab2e0924\u003e:0 \r\n  at (wrapper managed-to-native) System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo,object,object[],System.Exception\u0026)\r\n  at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0007c] in \u003c12b418a7818c4ca0893feeaaf67f1e7f\u003e:0 \r\n   --- End of inner exception stack trace ---\r\n  at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0009a] in \u003c12b418a7818c4ca0893feeaaf67f1e7f\u003e:0 \r\n  at System.RuntimeType.InvokeMember (System.String name, System.Reflection.BindingFlags bindingFlags, System.Reflection.Binder binder, System.Object target, System.Object[] providedArgs, System.Reflection.ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, System.String[] namedParams) [0x007b0] in \u003c12b418a7818c4ca0893feeaaf67f1e7f\u003e:0 \r\n  at System.Type.InvokeMember (System.String name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object target, System.Object[] args) [0x00000] in \u003c12b418a7818c4ca0893feeaaf67f1e7f\u003e:0 \r\n  at Python.Runtime.PythonDerivedType.InvokeMethodVoid (Python.Runtime.IPythonDerivedType obj, System.String methodName, System.String origMethodName, System.Object[] args, System.RuntimeMethodHandle methodHandle, System.RuntimeTypeHandle declaringTypeHandle) [0x0015d] in \u003ce8135b23d9064b84a255057569ff100a\u003e:0 \r\n  at F.G.C () [0x00000] in \u003cd16dd79070534f72b8760f94ab2e0924\u003e:0 \r\n  at (wrapper managed-to-native) System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo,object,object[],System.Exception\u0026)\r\n  at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0007c] in \u003c12b418a7818c4ca0893feeaaf67f1e7f\u003e:0 \r\n```","author":{"url":"https://github.com/sean-anderson-seco","@type":"Person","name":"sean-anderson-seco"},"datePublished":"2024-12-09T15:11:57.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":7},"url":"https://github.com/2526/pythonnet/issues/2526"}

route-pattern/_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format)
route-controllervoltron_issues_fragments
route-actionissue_layout
fetch-noncev2:9c637e5f-3fdf-8fa6-b1b8-eb374f8625a8
current-catalog-service-hash81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114
request-idD1BA:2C2D0C:15CD64D:1CA673B:69718F34
html-safe-noncee8aa9441426daab9619f71ad74d4a63850a62273937ba06360a1d3fc87fb2cb9
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEMUJBOjJDMkQwQzoxNUNENjREOjFDQTY3M0I6Njk3MThGMzQiLCJ2aXNpdG9yX2lkIjoiNTI4NDQ4MTIwNTMyMTk2MTI2OSIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac7ab340fc1cbe46e65ab544bba0f65548f347e882be53b1370c5d369b6b658414
hovercard-subject-tagissue:2727374938
github-keyboard-shortcutsrepository,issues,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///voltron/issues_fragments/issue_layout
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/pythonnet/pythonnet/2526/issue_layout
twitter:imagehttps://opengraph.githubassets.com/c9cbf0fae69166274065e26b8fff5c5e1e3de27d220f8657cf3c944c6685810d/pythonnet/pythonnet/issues/2526
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/c9cbf0fae69166274065e26b8fff5c5e1e3de27d220f8657cf3c944c6685810d/pythonnet/pythonnet/issues/2526
og:image:altPython classes cannot inherit from C# interfaces that themselves inherit from C# interfaces with methods: namespace A { public interface B { void C(); } public interface D : B { } } import clr clr....
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernamesean-anderson-seco
hostnamegithub.com
expected-hostnamegithub.com
None2b0f2f00499ad3dd2c21ad030a3c403edca54df20ea256f6517c6d8c4fa3a1a4
turbo-cache-controlno-preview
go-importgithub.com/pythonnet/pythonnet git https://github.com/pythonnet/pythonnet.git
octolytics-dimension-user_id6050430
octolytics-dimension-user_loginpythonnet
octolytics-dimension-repository_id14748123
octolytics-dimension-repository_nwopythonnet/pythonnet
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id14748123
octolytics-dimension-repository_network_root_nwopythonnet/pythonnet
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release67235153f3c1514ed5f7dc469f138abc377bd388
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/pythonnet/pythonnet/issues/2526#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpythonnet%2Fpythonnet%2Fissues%2F2526
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpythonnet%2Fpythonnet%2Fissues%2F2526
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fvoltron%2Fissues_fragments%2Fissue_layout&source=header-repo&source_repo=pythonnet%2Fpythonnet
Reloadhttps://github.com/pythonnet/pythonnet/issues/2526
Reloadhttps://github.com/pythonnet/pythonnet/issues/2526
Reloadhttps://github.com/pythonnet/pythonnet/issues/2526
pythonnet https://github.com/pythonnet
pythonnethttps://github.com/pythonnet/pythonnet
Notifications https://github.com/login?return_to=%2Fpythonnet%2Fpythonnet
Fork 770 https://github.com/login?return_to=%2Fpythonnet%2Fpythonnet
Star 5.4k https://github.com/login?return_to=%2Fpythonnet%2Fpythonnet
Code https://github.com/pythonnet/pythonnet
Issues 156 https://github.com/pythonnet/pythonnet/issues
Pull requests 18 https://github.com/pythonnet/pythonnet/pulls
Discussions https://github.com/pythonnet/pythonnet/discussions
Actions https://github.com/pythonnet/pythonnet/actions
Projects 0 https://github.com/pythonnet/pythonnet/projects
Wiki https://github.com/pythonnet/pythonnet/wiki
Security Uh oh! There was an error while loading. Please reload this page. https://github.com/pythonnet/pythonnet/security
Please reload this pagehttps://github.com/pythonnet/pythonnet/issues/2526
Insights https://github.com/pythonnet/pythonnet/pulse
Code https://github.com/pythonnet/pythonnet
Issues https://github.com/pythonnet/pythonnet/issues
Pull requests https://github.com/pythonnet/pythonnet/pulls
Discussions https://github.com/pythonnet/pythonnet/discussions
Actions https://github.com/pythonnet/pythonnet/actions
Projects https://github.com/pythonnet/pythonnet/projects
Wiki https://github.com/pythonnet/pythonnet/wiki
Security https://github.com/pythonnet/pythonnet/security
Insights https://github.com/pythonnet/pythonnet/pulse
New issuehttps://github.com/login?return_to=https://github.com/pythonnet/pythonnet/issues/2526
New issuehttps://github.com/login?return_to=https://github.com/pythonnet/pythonnet/issues/2526
Python classes cannot inherit from C# interfaces that themselves inherit from C# interfaces with methodshttps://github.com/pythonnet/pythonnet/issues/2526#top
https://github.com/sean-anderson-seco
https://github.com/sean-anderson-seco
sean-anderson-secohttps://github.com/sean-anderson-seco
on Dec 9, 2024https://github.com/pythonnet/pythonnet/issues/2526#issue-2727374938
#2511https://github.com/pythonnet/pythonnet/issues/2511
9ebfbdehttps://github.com/pythonnet/pythonnet/commit/9ebfbde35eef742e39b80d4fe2464bdece4e34be
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.