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

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 14, 20262026-05-14T04:02:41+00:00 2026-05-14T04:02:41+00:00

I have set up a NInject (using version 1.5) binding like this: Bind<ISessionFactory>().ToMethod<ISessionFactory>(ctx =>

  • 0

I have set up a NInject (using version 1.5) binding like this:

Bind<ISessionFactory>().ToMethod<ISessionFactory>(ctx => 
{
    try
    {
        // create session factory, might fail because of database issues like wrong connection string
    }
    catch (Exception e)
    {
        throw new DatabaseException(e);
    }
}).Using<SingletonBehavior>();

As you can see, this binding uses a singleton behavior but can also throw exception when something is not configured correctly, like a wrong connection string to the database.

Now, when the creation of a session factory fails at first (throwing a database exception), NInject doesn’t try to create the object again but always returns null.

I would need NInject to check for null first and recreate when the instance is null, but of course not when there already is an instance successfully constructed (keeping it singleton). Like this:

var a = Kernel.Get<ISessionFactory>(); // might fail, a = null
// ... change some database settings
var b = Kernel.Get<ISessionFactory>(); // might not fail anymore, b = ISessionFactory object

Would I need to write a custom behavior or am I missing something else?

  • 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-14T04:02:42+00:00Added an answer on May 14, 2026 at 4:02 am

    This doesnt make much sense.

    Firstly, the point of a singleton is that everything depending on that item should see exactly the same thing – this is very hard to achieve if your factory method is going to change its mind.

    Also, if you’re talking about an NHibernate ISessionFactory (are you?), it’s not going to have transient failures of this nature that can be recovered (or if it can, can you explain why – I’m no expert on it). I appreciate that the creation of a Session might fail (but you wouldnt be keeping it as a singleton), but that’s a completely different to the creation of a factory failing (if you cant rely on your factories to have dumb constructors, what can you rely on?).

    In terms of the NInject angle on this, the creation method (be it Factory or Provider) is separate to the scoping, so I doubt there’s going to be a way to manage what you’re looking to do cleanly (even if you can resolve the opening two questions). I highly recommend looking at the source – it’s short and clean so if there’s an answer, it’ll jump right out at you. It’ll take you no more than a minute to download – go do it!

    Finally, a good article on managing NHibernate sessions (Which IIRC doesnt make any provision for session factory creation failure)

    Now, to actually answer the question regardless of whether its a bad one – if it was possible for a failure to happen in the creation of the factory, and you couldnt adjust the factory in order not to do that (how many retry looks have you seen for creating factories?), the answer is that you’d move the retry logic (for creating the Factory) into a Provider or Method that’s responsible for creating Sessions, which can then retry in a manner that you see fit.

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

Sidebar

Ask A Question

Stats

  • Questions 410k
  • Answers 410k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer solved by myself: here is the solution: public class HGrid… May 15, 2026 at 7:33 am
  • Editorial Team
    Editorial Team added an answer The code I was stuck at: DataView dv = dsFoo.Select(DataSourceSelectArguments.Empty)… May 15, 2026 at 7:33 am
  • Editorial Team
    Editorial Team added an answer Sounds like it may be the way Excel is iterating… May 15, 2026 at 7:33 am

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

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.