If I understand your question is right, you can do something like:
class MyPackage : Package
{
private static MyPackage _instance;
public static MyPackage Instance
{
get
{
if(_instance != null)
_instance = new MyPackage();
return _instance;
}
}
}
class SomeOtherClass
{
void Whatever()
{
// use MyPackage.Instance
}
}
But this can be reliable only if you need one instance of MyPackage throughout the application's life time. Otherwise, pass a new instance of MyPackage to SomeOtherClass.
edit: local variable _instance should also be static; I missed that.