In general, if you need to actually use the Container class's functionality in your template, you'll want to load the assembly that your project is building. This does introduce a circular dependency, as you need a built version of your assembly in order to regenerate code that is going to be included in that assembly, so be aware of that.
If you're using VS2010 or above, you'll be able to use something like:
<#@ assembly name="$(TargetPath)" #>
<#@ import namespace="Your.Namespace" #>
and then use your Container class.
If you have VS2010SP1 or above, this will cause you no probelms with locking that assembly in memory, but if you're earlier than that, then you'll have to restart Visual Studio after each generation before you can rebuild your project.