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

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 23, 20262026-05-23T07:44:37+00:00 2026-05-23T07:44:37+00:00

There are cases in my app where my repositories require passing different arguments to

  • 0

There are cases in my app where my repositories require passing different arguments to constructors of the concrete types. I want to be able to do something like this:

var arg = (x == y) ? z : a;
ObjectFactory.GetInstance<IRepository>(arg);

Where the argument can only be constructed at the time of creating the Repository instance depending on some condition.

How can this be done?

  • 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-23T07:44:37+00:00Added an answer on May 23, 2026 at 7:44 am

    As @Steven also says, I think that if possible you should let the class that needs the dependency (that has a dynamic argument) take a factory as a parameter so that you can control the creation from the consumer.

    With structure map there is built in support for this so that you don’t have build a factory class.

    Let the consumer take a Func as a ctor argument and create the repository (dependency) by invoking the Func with the argument:

    public class Consumer
    {
        public Consumer(Func<ArgumentType, IRepository> repositoryFactory)
        {
          _repositoryFactory = repositoryFactory;
        }
    
        public void CallRepository()
        {
           ArgumentType arg = (x == y) ? z : a;
           var repository = _repositoryFactory(arg);
           repository.GetById(...);
        }
    }
    

    In the configuration for structure map, you can configure the func:

    For<Func<ArgumentType, IRepository>>().Use( arg => new Repository(arg));
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a Django app where there are 2 use cases where I want
We have an app with highly interrelated data, i.e. there are many cases where
my app does something when the screen goes black, but I want it to
Is there a way to install iPhone App via a browser (in this case
When are custom Exception classes most-valuable? Are there cases when they should or should
Are there any cases in which anything more than a linear speed increase comes
Are there any cases when it's a good idea to throw errors that can
I'm using sequential ids as primary keys and there are cases where I don't
I have some HTML I am trying to parse. There are cases where the
Why do the Silerlight-generated WCF proxy class(es) offer only async calls? There are cases

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.