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 3316818
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 17, 20262026-05-17T22:30:51+00:00 2026-05-17T22:30:51+00:00

Sorry in advance for the long question, it’s long because I’ve been digging at

  • 0

Sorry in advance for the long question, it’s long because I’ve been digging at this all day.

The general problem:

I have an ASP.Net MVC2 application with the following projects: MyApp.Web, MyApp.Services, MyApp.Data.

We code to interfaces and utilize Ninject 2 for DI/IoC.

However, I’m getting awfully tired of typing (and forgetting to type):

Bind<ISomeService>.To<SomeService>;

So, knowing about Ninject.Extensions.Convensions, I have attempted to use it to automatically scan and register modules and simple dependencies of the type IXxxx => Xxxx.

What I tried that works (but isn’t quite enough):

I can use the following code to setup Ninject, and everything seems to get wired up as expected.

    public static IKernel Initialize()
    {
        var kernel = new StandardKernel();

        kernel.Scan(a => {
                        a.FromAssemblyContaining<MyApp.Data.SomeDataClass>();
                        a.FromAssemblyContaining<MyApp.Services.SomeServiceClass>();
                        a.AutoLoadModules();
                        a.BindWithDefaultConventions();
                        a.InTransientScope();
                    });

        return kernel;
    }

What I want to accomplish instead:

However … I’d like to take this a bit further in a way I think is supported, but I cannot seem to get it working.

Since our MyApp.Web project uses nothing at all (directly) from MyApp.Data, I am trying to avoid a reference to MyApp.Data. With the above code, I must reference MyApp.Data from MyApp.Web because of the compile time reference to SomeDataClass.

I would prefer to specify the name of an assembly for Ninject to scan and register. It seems the Conventions extension supports this through the From overloads that take a string (or enumerable of strings).

What I tried and how it breaks:

So, I’ve tried several variations on the From overloads:

    public static IKernel Initialize()
    {
        var kernel = new StandardKernel();

        kernel.Scan(a => {
                        a.From("MyApp.Data");
                        a.From("MyApp.Services.dll");
                        a.From("AnotherDependency, Version=1.0.0.0, PublicKeyToken=null"); //etc., etc. with the From(...)'s
                        a.AutoLoadModules();
                        a.BindWithDefaultConventions();
                        a.InTransientScope();
                    });

        return kernel;
    }

But I receive FileNotFoundExceptions with a message like:

Could not load file or assembly
‘file:///C:\Program Files
(x86)\Common Files\Microsoft
Shared\DevServer\10.0\MyApp.Data’
or one of its dependencies. The system
cannot find the file
specified.”:”file:///C:\Program Files
(x86)\Common Files\Microsoft
Shared\DevServer\10.0\

What I’ve found trying to solve this myself:

I’ve checked out the source for Ninject.Extensions.Conventions, and I’ll admit I get totally lost as to how this is supposed to work, but I can see what it is doing.

The assembly scanner builds up a list of assemblies to scan as we call various FromXXX methods.

When I call the From(“assemblyName”) method, it first checks if the list already contains any assemblies where the assembly.AssemblyName.Name equals the name I passed in (and AssemblyName.Name is the simple name, i.e. MyApp.Data, according to MSDN).

Flow passes through a couple unimportant methods, landing in the FindAssemblies method. This method takes the name I passed in (which we already saw is supposed to be a simple assembly name). It then creates a new AssemblyName, with our passed in name used as the AssemblyName.CodeBase.

Then, it attempts to Load the assembly into a temporary AppDomain. This is the step that fails with the above exception.

Obviously, the path it’s searching is wrong, but I cannot supply a path through the From() method. That doesn’t work either.

I’ve tried some of the other FromXXX methods, but I’ve gotten nowhere and spent too much time on this already. The FromAssembliesInPath and FromAssembliesMatching also do not work because, again, it is searching in the completely wrong directory.

Uh .. what was the question again:

Can anyone explain how to get Ninject Conventions to load assemblies by name, without creating a reference to the assembly and loading it by specifying a contained type? Please.

I’ve already searched through pages and pages of the Ninject google group, and I’ve read it’s only (so it seems) relevant documentation and have not been able to solve it .. yet.

  • 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-17T22:30:51+00:00Added an answer on May 17, 2026 at 10:30 pm

    This question was answerd on the mailing list. http://groups.google.com/group/ninject/browse_thread/thread/a7f2163e060a6d64

    In Short:

    1. Form(path) takes a path either relative from the working directory or absolute
    2. The assembly must reside in a probing path as it is loaded into the load context to avoid other problems with switching the loading context.
    3. The development server makes all complicated as it copies all assemblies into their own directory, which makes it impossible to use the calling assembly to create the path. This means the only way for web apps using the development server.
    4. We will add support for full qualified names of assemblies in a future version to make this easier.
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Sorry in advance for the lengthy explanation! I have a C++ application that uses
I don't know how to phrase the question properly so sorry in advance. Using
I have a form which uploads multiple file fields into a db using codeigniter.
Integrating SimpleModal with ASP.NET I want to thank Eric for producing SimpleModal and compliment
I created a windows service,by this windows service i am publishing the web service
Say I have an abstract class class NecessaryDanger { public: virtual void doSomethingDangerous() =0;
I have a string which is a word, then =, then a number. e.g
I'm building a module for Drupal 6 (what it does isn't wildly important; I've
I am trying to take a two-dimensional array and run it through a series
In my viewbased application i loaded oneview as mainview and another view as subview

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.