Skip to content

Docs for working with plugins/dynamic assembly loading #101

@tillig

Description

@tillig

Autofac isn't responsible for loading assemblies, that's the framework's responsibility. However, because folks wire up their plugins using a DI framework it's a common misconception that when an assembly fails to load or isn't found that it's an Autofac problem.

We need some docs that explain a few things:

  • Clarify that assembly loading isn't an Autofac concern.
  • Point out the example we have for simple .NET Core handling (which is not a recommendation, just a quick example).
  • Point out the docs on ASP.NET MVC Classic plugin assemblies as well as the IIS Restart problem
  • Note that there are a lot of considerations in designing a plugin framework and how none of these are built into Autofac:
    • Application type - different apps need different plugin mechanisms
    • Assembly location - how plugin assemblies get found
    • Plugin dependencies - how dependencies for plugins get resolved, particularly if they conflict
    • Security - potential need for loading assemblies in a safe context prior to loading them completely
    • Framework differences - .NET desktop might load everything in the bin folder automatically for a console app, but that isn't the same as how .NET desktop handles IIS apps (i.e., BuildManager and referenced assemblies), and that's not the same as how .NET Core locates and loads assemblies

Likely this is an FAQ sort of doc since it's not something we support (i.e., "Advanced Topics") and it's not application-specific.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions