const
public const string MyStr;
is a compile time constant (you can use it as the default parameter for a method parameter for example), and it will not be obfuscated if you use such technology
static readonly
public static readonly string MyStr;
is runtime constant. It means that it is evaluated when the application is launched and not before. This is why it can't be used as the default parameter for a method (compilation error) for example. The value stored in it can be obfuscated.