If you use a property instead, you can add logic to the setter to not allow null or empty strings. You can also add the logic to see if it exists.:
public string TestString
{
get { return TestString; }
set
{
if(!string.IsNullOrEmpty(value))
{
// TODO: Add your logic to check if exists somwhere
TestString = value;
}
else
{
throw new ArgumentOutOfRangeException("value", " etc... ");
}
}
}
Throwing the exception may cause a heated debate, but its your choice.