आंशिक वर्ग फ़ाइलों के लिए नामकरण कन्वेंशन


93

मैं अपने ASP.NET MVC मचान कोड के थोक पैदा कर रहा हूँ। सभी उत्पन्न फाइलें आंशिक कक्षाएं हैं जो मानक नामकरण सम्मेलनों का उपयोग करती हैं। उदाहरण के लिए, मेरे कर्मचारी नियंत्रक फ़ाइल का नाम EmployeeController.cs है। यदि मैं कस्टम, गैर-जनरेट किए गए तर्क के साथ EmployeeController का विस्तार करना चाहता हूं, तो मैं EmployeeControllerCustom.cs नामक एक दूसरी आंशिक वर्ग फ़ाइल बनाता हूं। मैं कस्टम को अलग करता हूं और दो अलग-अलग फाइलों में तर्क उत्पन्न करता हूं इसलिए अगली बार जब मैं EmployeeController उत्पन्न करता हूं तो मेरे कस्टम परिवर्तन अधिलेखित नहीं होते हैं। फ़ाइल नाम में "कस्टम" प्रत्यय जोड़ना मेरे लिए उचित लगता है, लेकिन क्या एक अधिक स्थापित आंशिक वर्ग फ़ाइल नामकरण सम्मेलन है जिसका मुझे अनुसरण करना चाहिए?

जवाबों:


152

मैं .अलगाव का उपयोग करता हूं - उदाहरण के लिए EmployeeController.SomeSpecialBehaviour.cs। मैं इसे "डिपेंडयूपोन" या जो भी csproj में है, के माध्यम से परियोजना के पेड़ में जोड़ता हूं, ताकि यह बड़े करीने से (समाधान खोजकर्ता में) फ़ाइल के नीचे घोंसला बनाए। आपको यह करना होगा कि हाथ से (csproj को संपादित करें) या एक ऐडिन के साथ, हालांकि; उदाहरण के लिए:

<Compile Include="Subfolder/Program.cs" />
<Compile Include="Subfolder/Program.Foo.cs">
  <DependentUpon>Program.cs</DependentUpon> <!-- Note that I do not reference the subfolder here -->
</Compile>

इस प्रकार दिखाई देता है:

  • सबफ़ोल्डर
    • Program.cs
      • Program.Foo.cs

5
DependentUpon सुझाव वास्तव में अच्छा है और बढ़िया काम करता है। ध्यान देने के लिए धन्यवाद। अगर मैं सही ढंग से पढ़ रहा हूं, तो आप "कस्टम" जैसे मानक प्रत्यय का उपयोग नहीं करते हैं। आपका प्रत्यय हमेशा आंशिक वर्ग फ़ाइल की कार्यक्षमता के इरादे को व्यक्त करता है। इसके अलावा, वहाँ एक कारण है कि आप का उपयोग करें। आवरण के विपरीत अलगाव? करता है। बेहतर पठनीयता से अधिक कुछ भी प्रदान करें? धन्यवाद।
बेन ग्रिसवॉल्ड

11
सही - फ़ाइल नाम उस हिस्से में कोड के इरादे को इंगित करता है । इसलिए अगर मैं एक विदेशी इंटरफ़ेस लागू कर रहा हूं (और कोड को अलग रखते हुए), तो यह हो सकता है SomeType.ICustomTypeDescriptor.cs.वास्तविक प्रकार (: (IMO) को अलग करती है दो बातें SomeType) और इरादे ICustomTypeDescriptor- दोनों पहले से ही पूरी तरह से मामलों रहे हैं; इसके अलावा, यह की तरह चीजों के साथ बड़े करीने से मेल खाता है SomeForm.Designer.cs;-p
मार्क Gravell

उत्तम। अतिरिक्त जानकारी के लिए धन्यवाद। अगर मैं वोट से ज्यादा कर सकता हूं तो आपका जवाब और निशान उतना ही सही होगा जितना मैं कर सकता हूं।
बेन ग्रिसवॉल्ड

1
@Marc Gravell: क्या आप किसी भी मौका द्वारा किसी भी वी.एस. एक्सटेंशन को जानते हैं जो फाइलों के लिए डिपेंडेंट यूपिंग की कार्यक्षमता प्रदान करता है?
दप्पल

2
@Dyppl FileNesting एक्सटेंशन यह कर सकता है
gt

15

मार्क ग्रेवेल के उत्तर में जोड़ने के लिए, मेरे पास एक सबफ़ोल्डर में फाइलों के साथ एक स्थिति थी और DependentUponनोड को अनदेखा किया जा रहा था। इसकी कमी यह है कि ऐसे मामले में यह मेरा xml होना था:

<Compile Include="foo\bar.cs" />
<Compile Include="foo\bar.baz.cs">
    <DependentUpon>bar.cs</DependentUpon>  <!-- Note that I do not reference the subfolder here -->
</Compile>

मुझे उम्मीद है इससे किसी को सहायता मिलेगी :)


मैं भी। ऐसा इसलिए हुआ क्योंकि मैंने डेटाबेस-प्रथम में प्रोजेक्ट शुरू किया और जब उसने मॉडल बनाया तो उसने उन्हें मॉडल आरेख के अंदर रखा। VS2015 अगर इससे किसी को फर्क पड़ता है।
जोशुआ के
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.