1

I try to build a Generic Method which take class and set value using reflection and return a class type.

protected static T GetSecureModel<T>(T model)
        {
            T secureModel = default(T);

            foreach (var property in model.GetType().GetProperties())
            {

                    if (string.CompareOrdinal(property.PropertyType.FullName, "System.String") == 0)
                    {
                        property.SetValue(property.Name, property.GetValue(model, null).ToString(), null);
                    }
             }

              return secureModel;
}

How to return a Class after set value ?

1 Answer 1

2

OK. I solve it. Check below code, It may be helpful for someone.

   protected static T GetSecureModel<T>(T model)
        {
            bool secureData = false;

            T secureModel = default(T);

            foreach (var property in model.GetType().GetProperties())
            {
                if (property.GetValue(model, null) != null && property.GetValue(model, null).ToString() != _blankGuid && property.GetValue(model, null).ToString() != _zero)
                {
                    if (string.CompareOrdinal(property.PropertyType.FullName, _uniqueIdentifier) == 0)
                    {
                        model.GetType().GetProperty(property.Name).SetValue(model, new Guid(Sanitizer.GetSafeHtmlFragment(property.GetValue(model, null).ToString())), null);
                    }
                    else if (string.CompareOrdinal(property.PropertyType.FullName, _numeric) == 0)
                    {
                        model.GetType().GetProperty(property.Name).SetValue(model, int.Parse(Sanitizer.GetSafeHtmlFragment(property.GetValue(model, null).ToString())), null);
                    }
                    else if (string.CompareOrdinal(property.PropertyType.FullName, _string) == 0)
                    {
                        model.GetType().GetProperty(property.Name).SetValue(model, Sanitizer.GetSafeHtmlFragment(property.GetValue(model, null).ToString()), null);
                    }

                    secureData = true;
                }

            }

            if (secureData)
            {
                secureModel = model;
            }

            return secureModel;
        }
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.