दिलचस्प पोस्ट
MySQL लिनक्स सर्वर पर PDO ड्राइवर स्थापित करना इस कोड के प्रदर्शन में सुधार करने के लिए कैसे? कैसे अनारक्षित सूची में कन्वर्ट करने के लिए अच्छी तरह से स्टाइल <चयन> ड्रॉपडाउन jquery का उपयोग कर? कैसे pdf.js का उपयोग करें कैसे सी # में एमएस कार्यालय दस्तावेजों से पाठ निकालने के लिए php वापसी केवल एक सरणी से प्रविष्टियों को डुप्लिकेट करता है JQuery के साथ चयनित <select> का पहला विकल्प कैसे बनाया जाए? didReiveiveRemoteNotification पृष्ठभूमि में काम नहीं कर रहा है प्रोजेर्ड नरक – संदर्भित वर्ग नहीं मिल सकता है PHP $ _SERVER बनाम $ _SERVER , क्या मैं मैन पेज को सही तरीके से समझ रहा हूं? संपादन टेक्स्ट: पाठ चयन हेंडलर क्लिक ईवेंट पर पेस्ट / बदलें मेनू पॉप-अप अक्षम करें मापदंडों के बिना एसक्यूएल इंजेक्शन से बचना कॉल विधि जब होम बटन एंड्रॉइड पर दबाया जाता है केवल फ़ोल्डर नाम से एक बैरल आयात कैसे करें? जावास्क्रिप्ट: अपरिभाषित! == अपरिभाषित?

अजगर से सी # लाइब्रेरी को कॉल करना

कोई भी अजगर कोड से एक सरल सी # लाइब्रेरी (वास्तव में इसकी WPF) को कॉल करने के लिए एक उदाहरण काम कर सकता है? (मैंने आयरनपैथन का उपयोग करने की कोशिश की है और असमर्थित CPython लायब्रेरी के साथ बहुत अधिक परेशानी मेरे पायथन कोड का उपयोग कर रहा है इसलिए मैंने दूसरे तरीके से कोशिश की और पायथन से अपने सी # कोड को कॉल करने के बारे में सोचा है)।

यहाँ मैं उदाहरण के साथ खेल रहा था:

using System.Runtime.InteropServices; using System.EnterpriseServices; namespace DataViewerLibrary { public interface ISimpleProvider { [DispIdAttribute(0)] void Start(); } [ComVisible(true)] [ClassInterface(ClassInterfaceType.None)] public class PlotData : ServicedComponent, ISimpleProvider { public void Start() { Plot plotter = new Plot(); plotter.ShowDialog(); } } } 

प्लॉटर एक WPF विंडो है जो एक दीर्घवृत्त है

मुझे नहीं पता कि यह कोड कैसे मेरे अजगर से फोन करना है कोई सुझाव?

Solutions Collecting From Web of "अजगर से सी # लाइब्रेरी को कॉल करना"

यह वास्तव में बहुत आसान है अपने .Net प्रोजेक्ट में "अप्रबंधित एक्सपोर्ट्स" पैकेज को जोड़ने के लिए बस NuGet का उपयोग करें। विवरण के लिए https://sites.google.com/site/robertgiesecke/Home/uploads/unmanagedexports देखें

आप एक COM स्तर के बिना, सीधे निर्यात कर सकते हैं। यहाँ नमूना सी # कोड है:

 using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; using RGiesecke.DllExport; class Test { [DllExport("add", CallingConvention = CallingConvention.Cdecl)] public static int TestExport(int left, int right) { return left + right; } } 

तब आप डीएलएल लोड कर सकते हैं और पायथन में उजागर विधियों को कॉल कर सकते हैं (2.7 के लिए काम करता है)

 import ctypes a = ctypes.cdll.LoadLibrary(source) a.add(3, 5) 

चूंकि आपकी पोस्ट को IronPython टैग किया गया है, अगर आप नमूना C # का उपयोग करना चाहते हैं तो निम्नलिखित कार्य करना चाहिए।

 import clr clr.AddReference('assembly name here') from DataViewerLibrary import PlotData p = PlotData() p.Start() 

.Net (पायथन) के लिए पायथन आपकी स्थिति में IronPython का एक उचित विकल्प हो सकता है। https://github.com/pythonnet/pythonnet/blob/master/README.md

साइट से:

ध्यान दें कि यह पैकेज पायथन को प्रथम श्रेणी सीएलआर भाषा के रूप में लागू नहीं करता है – यह पाइथन कोड से प्रबंधित कोड (आईएल) का उत्पादन नहीं करता है। इसके बजाए, यह सीपीआईथॉन इंजन का एनआईटी रनटाइम के साथ एकीकरण है। यह दृष्टिकोण आपको सीएलआर सेवाओं का उपयोग करने और मौजूदा पायथन कोड और सी-आधारित एक्सटेंशन का उपयोग जारी रखने के लिए अनुमति देता है जबकि पायथन कोड के लिए देशी निष्पादन गति को बनाए रखता है।

भी

सामान्य अनुप्रयोग आधार और जीएसी के अलावा, एनआईटी के लिए पायथन, पीथोनपाथ (एसआईएस.पैथ) का प्रयोग करता है ताकि लोड करने के लिए असेंबलियों को लोड किया जा सके। यह सुनिश्चित करने के लिए कि आप असम्बद्ध रूप से एक विधानसभा आयात कर सकते हैं, sys.path में असेंबली वाली निर्देशिका डाल दें।

इस पैकेज को अब भी आवश्यकता है कि आपके पास अपने मशीन पर स्थानीय CPython रनटाइम है। अधिक जानकारी http://pythonnet.github.io/readme.html के लिए पूर्ण रीडमी देखें

इस परियोजना को उस सटीक उद्देश्य के लिए विकसित किया गया है – नियमित पायथन में सी # कक्षाओं का उपयोग करें

https://bitbucket.org/pydotnet/pydotnet/wiki/Home

आपको बस अपने सीपीएथॉन में एमएसआई या ईजीजी को स्थापित करना है। PyDotnet पायथन मॉड्यूल है, इसलिए निष्पादन योग्य Python या Anaconda की स्थापना से नियमित अजगर। Exe रहता है। दोनों 32 बिट और 64 बिट समर्थित

सभी सी # कक्षाओं में असीमित पहुंच, आउटपुट और रेफ पैरामीटर, सामान्य वर्गों और सामान्य तरीके, विस्तार विधियों, निजी सदस्यों के साथ तरीके

असेंबलियों की खोज के लिए अनुकूलित यांत्रिकी के साथ ओवरलोडेड असेंबली लोडर

.NET रनटाइम प्रकार की जानकारी कक्षा वस्तु के लिए परिवर्तनीय, जिसे किसी भी अन्य वर्ग के रूप में शुरू किया जा सकता है।

विशेष रूप से पाइथन इंटरेक्टिव शेल के लिए तैयार किए गए विशेष आयात मोड, जो आपको उपलब्ध विधानसभाएं, नाम स्थान, कक्षाओं, विधियों, आदि की खोज करने की अनुमति देता है।

मैं प्रतिक्रिया के लिए इंतजार कर रहा हूँ 🙂

मैं एक। NET विशेषज्ञ नहीं हूं, लेकिन आप कोड को ऐसा लगता है जैसे आपकी विधि COM ऑब्जेक्ट के रूप में सामने आई है तो आप इसे http://starship.python.net/crew/mhammond/win32/ पैकेज का उपयोग करने का प्रयास कर सकते हैं।