If you are in control of the code, you could also consider implementing the null object pattern, thus avoiding the need to check for null.
The benefit to this approach is that you no longer have to check every time you want to use the object (Don't Repeat Yourself), but it does depend upon how you are creating your objects, and how much control you have.
Something like:
public class NullOriginalText : OriginalText
{
public string OriginalText1 { get; private set; }
public NullOriginalText()
{
OriginalText1 = string.Empty;
}
}
public class ModelItem
{
public OriginalText { get; private set; }
public ModelItem()
{
OriginalText = new NullOriginalText();
}
public ModelItem(OriginalText originalText)
{
if (originalText == null)
{
OriginalText = new NullOriginalText();
}
else
{
OriginalText = originalText;
}
}
}