संपादित करें: मुझे एक उत्तर मिला है (तेज से मदद के साथ); निचे देखो।मेट्रो ऐप में जावास्क्रिप्ट से सी # तक पास सरणी
मैं, HTML/जावास्क्रिप्ट का उपयोग करते हुए मेट्रो एप्लिकेशन विकसित करने कर रहा हूँ कुछ सी # हेल्पर लाइब्रेरी आधारित के साथ। आम तौर पर मुझे जावास्क्रिप्ट से सी # विधियों को कॉल करने में बहुत सफलता मिल रही है, लेकिन मुझे काम करने के लिए सरणी (मेरे विशिष्ट मामले में, तारों के सरणी) में गुजरने लगते हैं। व्यक्तिगत तारों को पारित करने के बिना काम करना।
// in javascript project
var string1 = ...;
var string2 = ...;
var string3 = ...;
var result = MyLibrary.MyNamespace.MyClass.foo([string1, string2, string3]);
फिर, सी # में:
मेरे कोड कुछ इस तरह है
// in C# project
public sealed class MyClass {
public static string Foo(string[] strings) {
// do stuff...
}
}
समस्या यह है कि विधि "फू" में (सही लंबाई के साथ एक सरणी हो जाता है तो है उदाहरण के ऊपर, 3), लेकिन सभी तत्व खाली हैं। मैंने यह भी कोशिश की:
public static string Foo(object[] strings) {
...
यह काम नहीं करता - फिर, सरणी सही आकार थी, लेकिन सभी तत्व शून्य थे।
मैंने जावास्क्रिप्ट में "नया ऐरे (...)" का उपयोग करके स्ट्रिंग अक्षर, स्ट्रिंग वेरिएबल्स को पार करने का प्रयास किया है, "फू" के हस्ताक्षर को "पैरा स्ट्रिंग []" और "पैरा ऑब्जेक्ट []" में बदलकर, सब कुछ फायदा नहीं हुआ।
व्यक्तिगत तारों को पार करने के बाद से ठीक काम करता है, इसलिए मैं शायद कुछ हैकर के साथ इस पर काम कर सकता हूं ... लेकिन ऐसा लगता है कि ऐसा काम करना चाहिए। यह वास्तव में मेरे लिए अजीब लगता है कि सरणी सही आकार के रूप में पारित की जाती है (यानी जो भी मार्शलिंग कर रहा है वह जावास्क्रिप्ट सरणी संरचना के बारे में कुछ जानता है) और फिर भी सामग्री पॉप्युलेट नहीं हो रही है।
क्या होता है जब आप 'string1', 'string2', और' string3' के बदले स्ट्रिंग अक्षर का उपयोग करते हैं? – Tejs
वही परिणाम - सी # कोड अभी भी खाली तार प्राप्त करता है। – atkretsch
सरणी आइटम के लिए 'नई स्ट्रिंग ("हैलो वर्ल्ड") 'के बारे में क्या? शायद WinRT यह नहीं मान सकता कि ऑब्जेक्ट एक स्ट्रिंग – Tejs