public void EvaluateFieldsBad() { var model = new FieldsModel(); var type = typeof(FieldsModel); var publicIntField = type.GetField("publicInt", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public); Assert.IsNotNull(publicIntField); try { publicIntField.SetValue(model, model); } catch (ArgumentException) { } try { publicIntField.SetValue(model, byte.MaxValue); } catch (ArgumentException) { } try { publicIntField.SetValue(model, true); } catch (ArgumentException) { } try { publicIntField.SetValue(model, (long)0); } catch (ArgumentException) { } try { publicIntField.SetValue(model, long.MaxValue); } catch (ArgumentException) { } }
public void EvaluateFields() { var model = new FieldsModel(); model.internalInt = 10; model.publicInt = 5; var type = typeof(FieldsModel); var publicIntField = type.GetField("publicInt", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public); var internalIntField = type.GetField("internalInt", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); var privateIntField = type.GetField("privateInt", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); var privateStaticIntField = type.GetField("privateStaticInt", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic); Assert.IsNotNull(publicIntField); Assert.IsNotNull(internalIntField); Assert.IsNotNull(privateIntField); Assert.IsNotNull(privateStaticIntField); Assert.AreEqual(model.publicInt, publicIntField.GetValue(model)); int internalIntValue = 3; int privateIntValue = 12; int privateStaticIntValue = 20; internalIntField.SetValue(model, internalIntValue); privateIntField.SetValue(model, privateIntValue); privateStaticIntField.SetValue(null, privateStaticIntValue); Assert.AreEqual(internalIntField.GetValue(model), internalIntValue); Assert.AreEqual(privateIntField.GetValue(model), privateIntValue); Assert.AreEqual(privateStaticIntField.GetValue(null), privateStaticIntValue); }