Если вы предпочитаете приведение, попробуйте следующее:
class YourClass<T> where T : class
{
public static implicit operator YourClass<T>(YourClass<object> instance)
{
// Create YourClass<T> from YourClass<object>
// e.g. return new YourClass<T>(...)
}
}
var obj = new YourClass<object>();
YourClass<Message> msg = obj;
В противном случае вы можете создать конструктор:
class YourClass<T> where T : class
{
public YourClass(YourClass<object> obj)
{
}
}
Или вы можете использовать оба.