Hi all,

Background:

 I've got a service connection that is limited to 5 logins, (internal app
written in another dept, Java Webservice not WCF compatible.),  I've
implemented a library (C# 3.5) that calls this and a number of different
services to provide a coherent data source for our Excel (2003)
applications.
In my dispose, I clean everything up correctly, connections are closed,
webservice is disposed etc.

Problem:

 I need to find a way to force the developpers in my team and in the other
teams that use my library to call the Dispose method after each use of the
library.

Is there a pattern or does anyone have an idea, how I can put a limit on how
long the object can be used for?
I can think of some really kludgy ways using elapsed time and throwing an
exception.



Examples:


Good : all calls are closed, webservice is disposed, sockets closed etc.

 // Spring.Net
 public IPricingService PricingService { private get; set; }

 public IEnumerable<IPrice> GetPrices(int ref, DateTime date)
 {
            using (PricingService)
            {
                return
PricingService.GetPrices(ref,date,PricingProviders.All);
            }
}


Bad : object is not closed, open sockets and the login used for this call
will block until the webservice timeout.

 // Spring.Net
 public IPricingService PricingService { private get; set; }

 public IEnumerable<IPrice> GetPrices(int ref, DateTime date)
 {
                 return
PricingService.GetPrices(ref,date,PricingProviders.All);
  }


thanks
Davy,


"Always code as if the guy who ends up maintaining your code will be a
violent psychopath who knows where you live."
- Martin Golding

Reply via email to