Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 5975305
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 22, 20262026-05-22T21:03:58+00:00 2026-05-22T21:03:58+00:00

The traditional procedure to develop a plugin architecture seems to be to create a

  • 0

The traditional procedure to develop a plugin architecture seems to be to create a separate DLL containing only the common interface that all plugins will implement, and make both the core app and the plugins depend on that.

I’m trying to do just the same, but without a separate interface dll. One obvious way is to make all plugins depend on the core app, but that’s hardly a pretty solution.

Can you think of prettier solution? Ideally, there wouldn’t be a dll bundling the interface; if that’s impossible, the it would be pretty cool if a user that doesn’t intend to run plugins wouldn’t need to download the plugin dll at all. Taht way, only those who run plugins need the interface DLL.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-22T21:03:58+00:00Added an answer on May 22, 2026 at 9:03 pm

    You could load the assembly and access its types through Reflection. There are some examples here: http://www.csharp-examples.net/reflection-examples/, and I’ve extracted some of the more interesting ones:

    Assembly testAssembly = Assembly.LoadFile(@"c:\Test.dll");
    Type calcType = testAssembly.GetType("Test.Calculator");
    object calcInstance = Activator.CreateInstance(calcType);
    
    // Get property value
    PropertyInfo numberPropertyInfo = calcType.GetProperty("Number");
    double value = (double)numberPropertyInfo.GetValue(calcInstance, null);
    
    ....
    
    // invoke public instance method: public void Clear()
    calcType.InvokeMember("Clear",
         BindingFlags.InvokeMethod | BindingFlags.Instance | BindingFlags.Public,
         null, calcInstance, null);
    

    You can mandate that plugins are written in certain ways so that you know which classes to instantiate and which methods to call, and so on. Essentially, an informal interface that is expressed via documentation rather than through code.

    Now, this is not a good way to implement a plugin architecture, because you lose a lot of compile-time checking when writing plugins, and generally speaking it’s better to take the hit of deploying the extra DLL.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

By the traditional way I mean registering the DLL in registry. There seems to
With traditional OOP, I would (or could, rather) create a model / object that
Say I got an traditional SQL structure like so: create table tags (id PRIMARY
A traditional Make process that I cannot modify produces a target on which I
I have a setup with a traditional form that's checked with jQuery Tools validator
Under VoltDB Don'ts http://community.voltdb.com/DosAndDonts They state Don't create queries that return large volumes of
Traditional version control systems follow a Cathedral model -- all the code is stored
The traditional approach to manage access to controller actions is to create resource (string
I have a traditional RDBMS based PHP app that I need to convert over
Traditional logfile analytics tools (awstats, statcounter) or general web analytics (google analytics, yahoo web

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.