{"id":21820858,"url":"https://github.com/hrntsm/mef-for-grasshopper-plugin","last_synced_at":"2026-05-19T07:11:01.424Z","repository":{"id":40490094,"uuid":"397613969","full_name":"hrntsm/MEF-for-Grasshopper-Plugin","owner":"hrntsm","description":"Load a Grasshopper plugin through MEF","archived":false,"fork":false,"pushed_at":"2021-09-04T10:21:04.000Z","size":1031,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-19T01:42:08.787Z","etag":null,"topics":["csharp","grasshopper3d","rhino3d"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hrntsm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-08-18T13:39:05.000Z","updated_at":"2024-11-15T09:14:24.000Z","dependencies_parsed_at":"2022-09-11T15:21:40.824Z","dependency_job_id":null,"html_url":"https://github.com/hrntsm/MEF-for-Grasshopper-Plugin","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hrntsm/MEF-for-Grasshopper-Plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hrntsm%2FMEF-for-Grasshopper-Plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hrntsm%2FMEF-for-Grasshopper-Plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hrntsm%2FMEF-for-Grasshopper-Plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hrntsm%2FMEF-for-Grasshopper-Plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hrntsm","download_url":"https://codeload.github.com/hrntsm/MEF-for-Grasshopper-Plugin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hrntsm%2FMEF-for-Grasshopper-Plugin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33205719,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-18T09:27:30.708Z","status":"online","status_checked_at":"2026-05-19T02:00:06.763Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","grasshopper3d","rhino3d"],"created_at":"2024-11-27T16:39:30.821Z","updated_at":"2026-05-19T07:11:01.408Z","avatar_url":"https://github.com/hrntsm.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MEF for Grasshopper Plugin\n\n## What is MEF?\n\n- [MEF (Managed Extensibility Framework) - Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/framework/mef/)\n- [Managed Extensibility Framework入門 まとめ](https://blog.okazuki.jp/entry/20110507/1304772329)\n\n## About this repository\n\nI saw [New way to load a C# .net plugin](https://discourse.mcneel.com/t/new-way-to-load-a-c-net-plugin/31284) on Rhinoceros Forums and it looked interesting, so I'm trying it out. \n\nThe basic idea is as in the following article, but the article is for Rhino commands, so I'm making one for Grasshopper\n\nhttps://www.codeproject.com/Articles/1091178/Managed-Extensibility-Framework-MEF-Plugin-for-Rhi\n\nRhino command version [here](https://github.com/hrntsm/MEF-for-Rhinocoros-Plugin)\n\n## LICENSE\n\nThe original article was published under [The Code Project Open License (CPOL) 1.02](https://www.codeproject.com/info/cpol10.aspx).\n\nThis repository is under [MIT License](https://github.com/hrntsm/MEF-for-Rhinocoros-Plugin/blob/main/LICENSE)\n\n## How to use\n\nFor more detail, please see the original article.\n\n1. Build the solution\n1. Load GHPluginLoader.gha in GHPluginLoader/bin/ so that the \"LoadPlugin\" component can be used.\n1. When you execute the LoadPlugin component, it needs dll path, so refer to the dll file where the component you want to execute is actually written.\n    - As an example, the csproj to create a Line is GHPluginMakeLine, so refer to the dll file in its bin\n1. The component described in MakeLine.cs will be executed.\n1. Normally, Rhino needs to be restarted when the component code is rewritten, but in this case, MEF is used to load dll each time the LoadPlugin component is executed, so there is no need to restart.\n1. ;DDDDDDDDDDDDDDD\n\n## DEMO\n\n![demo](./image/demo.gif)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhrntsm%2Fmef-for-grasshopper-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhrntsm%2Fmef-for-grasshopper-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhrntsm%2Fmef-for-grasshopper-plugin/lists"}