1

我尝试构建一个通用方法,它使用反射获取类和设置值并返回一个类类型。

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;
}

设置值后如何返回一个类?

4

1 回答 1

2

好的。我解决它。检查下面的代码,它可能对某人有帮助。

   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;
        }
于 2013-02-12T14:40:13.257 回答