2010-08-24 7 views
5

क्या कोई यह जानता है कि यह कैसे करें? मैंने एएसपीनेट में बैकएंड सी # कक्षा बनाई लेकिन चांदी की रोशनी में उन्हें पुनर्निर्माण किए बिना इन कक्षाओं तक पहुंचना चाहते हैं। क्या यह एक संभावना है?रजत रोशनी परियोजना में एएसपीनेट सी # कक्षाओं/विधियों का संदर्भ

उत्तर

4

आप सीएस फाइलों को अपने प्रोजेक्ट एएस लिंक में जोड़कर पुन: उपयोग कर सकते हैं। अपनी प्रोजेक्ट में राइट क्लिक करें और मौजूदा जोड़ें का चयन करें ... अपनी फ़ाइल में ब्राउज़ करें और ओपन बटन में, लिंक के रूप में जोड़ें का चयन करने के लिए दाईं ओर पुलडाउन तीर का उपयोग करें। आपको अपनी प्रोजेक्ट में एक आइकन के साथ जोड़ा गया फ़ाइल दिखाई देगी जिसमें छोटे विंडोज शॉर्टकट आइकन पर ओवरलेड किया गया था।

बस याद रखें - एएसपी.Net नेट रनटाइम पर चलता है। सिल्वरलाइट कोरसीएलआर (सिल्वरलाइट रनटाइम) पर चलता है। ओन में संकलित सबकुछ अन्य में संकलित नहीं होगा ...

चीजों को थोड़ा अलग करने के लिए, #if निर्देश मदद कर सकते हैं, आप आंशिक कक्षाओं और आंशिक तरीकों का भी उपयोग कर सकते हैं (सामग्री को जोड़ने के लिए जो केवल सर्वर या क्लाइंट पर चलता है।)

+0

तो क्या इसका मतलब यह है कि चांदी की रोशनी परियोजना में एक समान वर्ग बनाने के लिए लगभग चालाक है क्योंकि कोई निश्चितता नहीं है कि सब कुछ संकलित होगा? – locoboy

+2

@ cfarm45: जाने का सबसे बढ़िया तरीका लगभग हमेशा कम से कम कोड वाला है। यदि आप अपने डोमेन कक्षाओं को पुन: व्यवस्थित करते हैं तो वे एएसपीनेट पर निर्भर नहीं हैं, आप उनका पुन: उपयोग कर सकते हैं। कोड कॉपी करना हमेशा योजना बी –

+0

@jdv ठीक है, मैं देख सकता हूं कि मैं क्या कर सकता हूं – locoboy

1

ठीक है, ASP.NET ही काम करने के लिए (डिट्टो पूर्ण पुस्तकालयों के कई) नहीं जा रहा है, लेकिन मैं आपको केवल आपके स्थानीय डोमेन मॉडल आदि

IIRC आप कर सकते हैं मतलब यह सोचते कर रहा हूँ बस इसका संदर्भ देने का प्रयास करें, लेकिन यह एक चेतावनी संदेश उत्पन्न कर सकता है। निस्संदेह आपको असाधारण रूप से सावधान रहने की आवश्यकता है कि अन्य प्लेटफॉर्म का समर्थन न करें ...

आईएमओ, यहां दूसरा विकल्प एक दूसरा csproj बनाने के लिए है जिसमें एक ही .cs फ़ाइलें शामिल हैं (या धोखा देती है एक वाइल्डकार्ड/गहरी शामिल)। और दोनों का निर्माण करें। वही सी #, विभिन्न डीएलएल/मंच।

यह जानने के लिए असामान्य नहीं है कि आपको बहुत छोटा#if निर्देशों का उपयोग भी करना चाहिए।

+0

एक ही सवाल है कि मैंने – locoboy

+0

@ cfarm54 से ऊपर avidgator से पूछा - एक ही जवाब ... –

1

WCF RIA Services आपकी समस्या का समाधान करने में आपकी सहायता कर सकता है। सिल्वरलाइट एक ही रनटाइम का उपयोग एएसपी.Net के रूप में नहीं करता है और आप सीधे क्लाइंट और सर्वर पक्ष पर मॉडल कक्षाओं वाली असेंबली साझा नहीं कर सकते हैं। यह हल करने के लिए कि डब्ल्यूसीएफ आरआईए सेवाएं पारदर्शी रूप से सर्वर पक्ष पर मॉडल कक्षाओं के आधार पर क्लाइंट साइड पर कक्षाएं उत्पन्न करेंगी। स्पष्ट रूप से डब्ल्यूसीएफ आरआईए सेवाएं आपको वेब सेवा का उपयोग करके इन कक्षाओं की वस्तुओं को बनाने, पढ़ने, अपडेट करने और हटाने की अनुमति भी देगी।

एमएसडीएन के पास WCF RIA Services Client Code Generation के बारे में अधिक विशिष्ट जानकारी है।

+0

यह सीखना कितना मुश्किल है? – locoboy

+1

@ cfarm54: मुझे नहीं पता कि यह कितना मुश्किल है, लेकिन आप एमएसडीएन (मेरे लिंक का पालन करें) पर कुछ नमूने आज़मा सकते हैं और खुद के लिए देख सकते हैं। यदि आपको वेब सेवा की आवश्यकता नहीं है तो शायद मार्क ग्रेवेल का सुझाव जहां लिंक फ़ाइलों का उपयोग करके स्रोत फ़ाइलों को साझा किया जाता है, सरल है। –

2

आरआईए सेवाएं निश्चित रूप से एएसपी.Net और Silverlight के बीच कोड साझा करने के लिए जाने का तरीका है।

साथ ही पहले से ही डोमेन सेवा मॉडल की उल्लिखित पीढ़ी के साथ, यह आपको फ़ाइल नामों में बस "साझा" डालने के द्वारा वेब-ऐप और सिल्वरलाइट के बीच अलग-अलग फ़ाइलों को साझा करने देता है। जैसे "MyClass.shared.cs"।

आरआईए सेवाओं के साथ शर्तों को प्राप्त करने में अधिक समय नहीं लगता है (और इसके बारे में अच्छे ट्यूटोरियल हैं)। Try this one

संबंधित मुद्दे