PartCreator, private default constructor

Jun 20, 2010 at 7:21 PM
Edited Jun 20, 2010 at 7:22 PM

Hello!

for example, we have class:

class Foo
{
   public Foo(Bar baz) { /* do smth */ }
   private Foo() {}
}

where Bar may be standart library class. There is problem with PartCreator<Foo>:

[Import]
PartCreator<Foo> fooCreator;

// blah-blah-blah

var value = fooCreator.CreatePart().ExportedValue; // I can't correctly initialize the object

Is there solution for my problem?

May i use extensions methods like:

public static class FactoryExtensions
{
  public static PartLifetimeContext<Foo> CreateByParams(this PartCreator<Foo> partCreator, Bar baz)
  {
     return ???? // what should be there?
  }

?

thx

Jun 21, 2010 at 4:40 PM

Sorry, we don’t support this scenario. ‘Bar’ needs to be available for composition. 

 

 

Developer
Jun 21, 2010 at 4:48 PM

Hammett is correct that we don't support this scenario but you can always build in an Initialize method to your contract and after you create the new value call value.Initialize(baz) which is about the best you can do right now.

Jun 21, 2010 at 7:26 PM

I'm already use technique proposed by weshaggard, but i thought that better way posibly exists

Thanks for responses! :)