سؤال

أنا أقوم ببناء موقع ASP.NET MVC (C#) حيث أريد تنفيذ STV (تصويت واحد قابل للتحويل) التصويت. لقد استخدمت OpenStV لسيناريوهات التصويت من قبل ، مع نجاح كبير ، لكنني لم أستخدمها مطلقًا برمجيًا.

ال يقدم مشروع OpenStv Google Code البرنامج النصي Python يسمح ذلك باستخدام OpenStV من تطبيقات أخرى:

import sys
sys.path.append("path to openstv package")

from openstv.ballots import Ballots
from openstv.ReportPlugins.TextReport import TextReport
from openstv.plugins import getMethodPlugins

(ballotFname, method, reportFname) = sys.argv[1:]

methods = getMethodPlugins("byName")
f = open(reportFname, "w")

try:
    b = Ballots()
    b.loadUnknown(ballotFname)
except Exception, msg:
    print >> f, ("Unable to read ballots from %s" % ballotFname)
    print >> f, msg
    sys.exit(-1)

try:
    e = methods[method](b)
    e.runElection()
except Exception, msg:
    print >> f, ("Unable to count votes using %s" % method)
    print >> f, msg
    sys.exit(-1)

try:
    r = TextReport(e, outputFile=f)
    r.generateReport();
except Exception, msg:
    print >> f, "Unable to write report"
    print >> f, msg
    sys.exit(-1)

f.close()

هل هناك طريقة لي لإجراء مثل هذه المكالمة من موقع Python من موقع C# ASP.NET MVC؟

إذا كان الأمر كذلك ، كيف؟

شكرا لك مقدما!

هل كانت مفيدة؟

المحلول

هنا هو مثال جيد على كيفية استدعاء IronPython من C#، بما في ذلك تمرير الوسائط والعودة ؛ بالطبع عليك أن تجعل هذا الرمز في وظيفة ، مع ballotFname و reportFname كحججها.

نصائح أخرى

أفضل طريقة ربما لاستخدام IronPython. يرى هذا الجواب لنقطة انطلاق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top