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

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 18, 20262026-06-18T17:18:33+00:00 2026-06-18T17:18:33+00:00

In our project we use a castle container for resolving dependencies. Basically we provide

  • 0

In our project we use a castle container for resolving dependencies. Basically we provide soap services for performing different tasks.

  public interface IServiceA
   {
      public ServiceResponse Process(ServiceRequest request);
   }

   public class ServiceA : IServiceA
   {
      public ServiceResponse Process(ServiceRequest request)
     {
         /////process stuff
     }
   }

    public interface IServiceB
   {
      public ServiceResponse ReProcess(ServiceRequest request);
   }

   public class ServiceB : IServiceB
   {
      private IServiceA _svcA;
      public ServiceB ()
      {
        _svcA= Container.Get<IServiceA>(); 
      }

     public ServiceResponse ReProcess(ServiceRequest request)
     {
        ////stuff
        _svcA.Process(new ServiceRequest()); 
     }
   }

I can reuse the process method of svcA in order to not have bloated duplicated code, but for this I need to tell svcA when I call its process method , that the call is from within svcB’s Reprocess method, so that svcA’ process method can look something like

public ServiceResponse Process(ServiceRequest request)\
{
   if (calledFromSvcB)
   {
    //do stuff
   }
   //process
}

The restriction is I cannot modify the contract meaning the signature of the methods offered by serviceA, or its types.

The only idea i came up with is :

 public class ServiceA : IServiceA
       {
         public bool IsCalledFromSvcB {get; set;} 
         public ServiceResponse Process(ServiceRequest request)
         {
             /////process stuff
         }
       }
 public class ServiceB : IServiceB
   {
      private IServiceA _svcA;
      public ServiceB ()
      {
        _svcA= Container.Get<IServiceA>(); 
      }

     public ServiceResponse ReProcess(ServiceRequest request)
     {
        _svcA.GetType().GetProperty("IsCalledFromSvcB ").SetValue(this, true);
        ////stuff
        _svcA.Process(new ServiceRequest()); 
     }
   }
which is really ugly. Any other ideas to inject this? 
  • 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-06-18T17:18:34+00:00Added an answer on June 18, 2026 at 5:18 pm

    Setting a property or field on the inner service won’t work if you can have multiple requests being processed at the same time.

    A second interface would probably be a better idea. Something like:

    internal interface IServiceAInternal
    {
        ServiceResponse ProcessFromServiceB(ServiceRequest request);
    }
    
    public class ServiceA : IServiceA, IServiceAInternal
    {
        public ServiceResponse Process(ServiceRequest request)
        {
            return ProcessCore(request, false);
        }
    
        ServiceResponse IServiceAInternal.ProcessFromServiceB(ServiceRequest request)
        {
            return ProcessCore(request, true);
        }
    
        private ServiceResponse ProcessCore(ServiceRequest request, bool calledFromServiceB)
        {
            ...
        }
    }
    
    public class ServiceB : IServiceB
    {
        private readonly IServiceAInternal _serviceA;
    
        public ServiceB()
        {
            _serviceA = Container.Get<IServiceAInternal>();
        }
    
        public ServiceResponse ReProcess(ServiceRequest request)
        {
            return _serviceA.ProcessFromServiceB(request);
        }
    }
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

In our C# project we use Spring as an Inversion of Control (IoC) container.
This code below is the base servlet we use for our project: public class
When I compile our project use Delphi 2010 Trial, there has a fatal error
In our project we use Zend Framework Model generator, which produces something like this
In our project we use jQuery 1.4.4 and jQuery UI 1.8.7 now. But we
We are planning to use Unity in our project to dynamically load objects/types residing
We use custom type to represent Identifiers in our project. It has TypeConvertor attached
Let me describe a simple use-case: Running all tests in our project may take
I'm interested in replacing an aging control we use in our project that is
So my team is just starting to use branches on our project, and we've

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.