मैं एक आवेदन के लिए एक दृश्य स्टूडियो समाधान में निम्नलिखित परियोजनाएं हैं:enums के साथ काम जब इंटरफेस अलग परियोजना में हैं
- आम - उपयोगिता तरीकों और एक्सटेंशन
- संस्थाओं - रिच डोमेन व्यापार तर्क विशिष्ट साथ वस्तुओं उदाहरणों को
- डेटा संग्रह स्थान - डेटा डेटा संग्रह स्थान
- DataServices - डेटा संग्रह स्थान को पतला आवरण, व्यापार तर्क एक उदाहरण
- Interfac के लिए विशिष्ट नहीं होते हैं es - संस्थाओं और भंडारों के लिए सभी इंटरफेस
इंटरफेस को एक अलग परियोजना में डालने का कारण परिपत्र परियोजना संदर्भों से बचने का कारण है। यह दो परियोजनाओं को ठोस कार्यान्वयन के साथ परियोजना को संदर्भित करने से बचने के लिए एक सामान्य इंटरफ़ेस को संदर्भित करने की अनुमति देता है।
मैंने परिपत्र परियोजना संदर्भों से बचने के लिए इंटरफेस परियोजना में जानबूझकर कोई परियोजना संदर्भ नहीं बनाया है। मैं अन्य परियोजनाओं में परिभाषित कक्षाओं के लिए एक इंटरफ़ेस बनाता हूं, यह मुझे अन्य इंटरफेस में ठोस कार्यान्वयन के विरोध में ऑब्जेक्ट इंटरफ़ेस का संदर्भ देने की अनुमति देता है।
तो एक उदाहरण होगा:
namespace Acme.Entities
{
public class Person : IPerson
{
string Name { get; set; }
}
}
namespace Acme.Interfaces
{
public interface IPerson
{
string Name { get; set; }
}
}
namespace Acme.Interfaces
{
public interface ITeam
{
string Name { get; set; }
IPerson Leader { get; set; }
}
}
एक अंतरफलक एक enum एक अन्य परियोजना में परिभाषित का संदर्भ जब इस मुद्दे को मैं आई है है। इंटरफेस परियोजना के तहत Enums ले जाए बिना, मैं इस परियोजना के संदर्भ बनाए बिना Enums संदर्भित करने के लिए कैसे, उदाहरण के लिए यकीन नहीं है:
namespace Acme.Entities
{
public enum Status
{
Unknown =0,
Active = 1,
Active = 2
}
}
namespace Acme.Interfaces
{
public interface IPerson
{
string Name { get; set; }
Acme.Entities.Status ActiveStatus { get; set; }
}
}
Acme.Entities.Status जब तक कि मैं Acme.Entities परियोजना संदर्भ असफल हो जायेगी , लेकिन यह एक परिपत्र संदर्भ बनाएगा क्योंकि Acme.Entities इंटरफेस प्रोजेक्ट का संदर्भ देता है।
इंटरफ़ेस प्रोजेक्ट में एनम को स्थानांतरित करने का विरोध क्यों किया जाता है? –
मुझे यहां @DStanley के साथ जाना है। आप शायद अपने 'इंटरफेस' प्रोजेक्ट को 'सामान्य' में बदलना चाहते हैं। –