Would a custom interface get you out of the weeds?  Then just require a
parameterless ctor that initializes fields to benign values and call the
interface .Init/Create etc.

BTW, this wouldn't be an Object/Relational mapping layer would it?

Jim

> -----Original Message-----
> From: Shawn Wildermuth [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, May 07, 2002 10:24 AM
> To: [EMAIL PROTECTED]
> Subject: [DOTNET] Confusion about the Type system...
>
>
> Please help me understand this stuff.  I am missing something
> important...  If anyone knows of a good reference/description of the
> type system, I'd really appreciate a link.
>
> Here is my problem:
>
> I have a system where I have a base class (called Profile) that knows
> how to store itself in the database.  It stores its data in
> the database
> and its Assembly Qualified Type Name.  At runtime I am reading the
> Assembly Qualified Type Name and using Activator.CreateInstance to
> create the object in memory.  I use this system because derived types
> may not be located in an assembly that I have access to at
> compile-time.
> This works fine except that I need to require a certain type of
> constructor to be available to know how to construct the
> objects (there
> are certain data requirements that necessitate the need for a certain
> style of constructor).  So I would like to do one of two
> things (neither
> of which I can get to work yet):
>
> 1. Specify in my base class that a constructor style is required (like
> marking it abstract, but C# doesn't support this of course)
> .or.
> 2. Create objects of the Type of my base class and at runtime, up-cast
> them to the new type.
>
> The nature of these objects is that the base class holds data
> structures
> that actually hold all the data for derived classes so I don't need to
> worry so much about an up-casting needing more memory allocated (since
> in the usual case the derived class may be larger in memory than the
> base class).  I like option #1 as it is a lot more clean, but I just
> hate the idea that I can only assert this at runtime.  If I could get
> derived classes to get a compiler error or warning if they didn't
> implement the required constructor, I'd be all set.
>
> Ideas?
>
> Thanks,
>
> Shawn Wildermuth
> [EMAIL PROTECTED]
> http://adoguy.com
> http://shawnwildermuth.com
>
> "...for the programmer, as for the chef, the urgency of the patron may
> govern the scheduled completion of the task, but it cannot govern the
> actual completion. An omelette, promised in two minutes, may appear to
> be progressing nicely. But when it has not set in two minutes, the
> customer has two choices--wait or eat it raw. Software customers have
> had the same choices. The cook has another choice; he can turn up the
> heat. The result is often an omelette nothing can save--burned in one
> part, raw in another.... " - Brooks, The Mythical Man-Month.
>
> You can read messages from the DOTNET archive, unsubscribe
> from DOTNET, or
> subscribe to other DevelopMentor lists at http://discuss.develop.com.
>

You can read messages from the DOTNET archive, unsubscribe from DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

Reply via email to