[Mono-list] Compiling egg-chicken libraries

Stuart Ballard sballard@netreach.com
Thu, 26 Feb 2004 14:41:01 -0500

Jaroslaw Kowalski wrote:
> I need (as an option) this for my O/R mapping software because I want to be
> able to use mutliple languages.
> I have:
> 1. "Stubs" assembly - written in C# - that must be able to create objects
> from "Objects" assembly to represent 1-1 relations and 1-N relations.
> 2. "Objects" assembly - written in some other language whose classes inherit
> from the appropriate classes in "Stubs" assembly
> So I have a mutual dependency here. But as I've said this is optional. If
> you stict to C# you have just a single assembly with no interdependencies.

Sounds like what you need is an IObjectCreator interface, defined in 
Stubs and implemented in Objects.

eg, in the Stubs assembly:

public interface IObjectCreator {
   object CreateObject();
public class FooStub {
   IObjectCreator ioc;

   void Twiddle() {
     object o = ioc.CreateObject();
     // do something with o

in the Objects assembly:

public class Foo : FooStub {
   class FooCreator : IObjectCreator {
     public object CreateObject() {return new Foo();}
   public Foo() {
     ioc = new FooCreator();

The only problem is the need to explicitly define FooCreator for each 
class by hand. Depending on your circumstances, that may or may not be a 
killer problem.


Stuart Ballard, Senior Web Developer
NetReach, Inc.
(215) 283-2300, ext. 126