5

मैं ओविन/कटाना पर होस्ट की गई वेबएपीआई सेवाओं के लिए प्याज आर्किटेक्चर का पालन करने का प्रयास कर रहा हूं।क्या ओवन पर वेबएपीआई के साथ प्याज आर्किटेक्चर और डी लागू करना संभव है?

Onion Architecture

मैं इस तरह एक समाधान संरचना है:

  • DependencyResolution: Owin स्टार्टअप वर्ग और आईओसी सेटअप
  • WebAPI शामिल हैं: वेब एपीआई नियंत्रकों
  • इन्फ्रास्ट्रक्चर: इंटरफ़ेस क्रियान्वयन
  • कोर: इंटरफेस

मैं निर्भरता विकास परियोजना को वेबएपीआई परियोजना के लिए निर्भरताओं को इंजेक्ट करना चाहता हूं। निर्भरता पुनरुत्थान में WebApi प्रोजेक्ट के आउटपुट फ़ोल्डर को आउटपुट करने के लिए एक बिल्ड कार्य है।

मैं निम्नलिखित दृष्टिकोण को यहां बताई, Autofac और DotNetDoodle.Owin.Dependencies NuGet पैकेज का उपयोग कर रहा हूँ: RegisterApiControllers लिए, कॉल मेरी स्टार्टअप कक्षा में सेवाओं को पंजीकृत करने में

http://www.tugberkugurlu.com/archive/owin-dependencies--an-ioc-container-adapter-into-owin-pipeline

हालांकि, () असफल हो जायेगी। DepenedencyResolution विधानसभा पहले तो निष्पादित करने के लिए यह ApiContollers युक्त विधानसभा (वेबएपीआई विधानसभा) प्राप्त करने के लिए सक्षम नहीं होगा होगा: Assembly.Load का सहारा

public IContainer RegisterServices() 
{ 
    ContainerBuilder builder = new ContainerBuilder(); 

    builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); 
    builder.RegisterType<MyRepo>() 
      .As<IRepo>() 
      .InstancePerLifetimeScope(); 

    return builder.Build(); 
} 

है() केवल व्यवहार्य विकल्प यहां, या क्या मुझे केवल निर्भरता रिजोल्यूशन प्रोजेक्ट को अलग रखने का विचार छोड़ना चाहिए और इसे वेबएपीआई प्रोजेक्ट से संदर्भित करना चाहिए (थोड़ा कम-से-कम प्याज लगता है)?

उत्तर

1

आप वेब एपीआई विधानसभा के नाम का उपयोग कर सकते हैं इसके उदाहरण पाने के लिए:

builder.RegisterApiControllers(Assembly.Load("WebApiAssembly")); 
संबंधित मुद्दे