When you create your own initialization module, add a reference to _EPiServer.Framework.dll_. The following Initialization code example shows how a property is set up with a default implementation in Initialize and then the process is undone in `
**Allow for Initialize to be called multiple times**. If you carry out multi-step initialization in your `
Initialize` method and if it is re-executed because of an error – ensure that the application handles this scenario correctly. Example:
Initialize` method may generate an error after the event handler is hooked up.** The initialization system invokes the `
Initialize` method again on the next request that reaches the web application and if the event hook-up is not protected with a flag, it gets added again.
**The initialization engine makes sure that your code executes in a single-threaded manner**. You do not need to lock regions when you deal with shared state. This guarantee is only made for `
Initialize` and `
Unintialize` when you execute through the initialization system. If you have custom code that makes calls directly into your initialization module, then you may need to deal with multi-threading issues.
**Remember that the initialization system tracks the initialization state of your module**.
**Do an implementation of `
Uninitialize`**. Anything you do with `
Initialize` you should undo with `
Uninitialize` in the reverse order of `
If you are using the CMS API make sure you are adding a module dependency to CMS using `