Hello,
When starting my application, I have a couple of classes which are required to read certain files in order to create a set of default data.
The logical place (to me) to do this is in a Shared class constructor; the idea would be to throw a class-level event if the reading of the defaults file fails. Unfortunately, this does not work as attempting to access such an event, in order to attach a handler to it, fires the class constructor before the event has been attached. In a failing case, the constructor starts, fires the fail event, the constructor completes, and then the event handler is attached, after the event has fired.
The only other solution I can think of is to give the class a "typeInitialisedSuccessfully" boolean property and put a try/catch block around every call to construct an instance of the class, which seems unnecessarily kludgey to me.
Can someone suggest a more elegant solution?
EDIT: Because this is a fundamental Class, used in one form or another across nearly all of our software tools, I would greatly prefer a solution that will notify future programmers that the type initialiser needs to be called, which is why I initially went towards the Shared Constructor as a solution.