public static ObjectParameterOperationResult getInstance(bool _success, string _msg)
            {
                ObjectParameterOperationResult c = new ObjectParameterOperationResult();

                c.success = _success;
                c.msg     = _msg;
                return(c);
            }
        //дело в том, что у объекта есть field и property, и все его поля данных - они либо такие, либо такие
        //часть данных объекта храняться как филд, часть - как проперти
        //чтобы не перебирать филд и проепрти каждый раз в коде, делается objectParameter внутри которого и перебирается филд и проперти

        public static ObjectParameterOperationResult setObjectParameter(object x, string name, object value)
        {
            FieldInfo[]    newObjectFields     = x.GetType().GetFields();
            PropertyInfo[] newObjectProperties = x.GetType().GetProperties();

            fn.CommonOperationResult convRez;

            foreach (FieldInfo f0 in newObjectFields)
            {
                if (f0.Name.ToLower() == name.ToLower())
                {
                    try
                    {
                        convRez = fn.convertedObject(f0.FieldType.ToString(), value); //чтобы внутри object было значение нужно типа
                        if (convRez.success)
                        {
                            f0.SetValue(x, convRez.returningValue);
                            return(ObjectParameterOperationResult.sayOk());
                        }
                        else
                        {
                            return(ObjectParameterOperationResult.sayNo(convRez.msg));
                        }
                    }
                    catch
                    {
                        return(ObjectParameterOperationResult.sayNo("Unknown error in ObjectParameters.setObjectParameter-1"));
                    }
                }
            }

            foreach (PropertyInfo f1 in newObjectProperties)
            {
                if (f1.Name.ToLower() == name.ToLower())
                {
                    if (isItOnlyGetter(x, name))
                    {
                        return(ObjectParameterOperationResult.sayOk());
                    }
                    try
                    {
                        convRez = fn.convertedObject(f1.GetType().ToString(), value);
                        if (convRez.success)
                        {
                            f1.SetValue(x, convRez.returningValue);
                            return(ObjectParameterOperationResult.sayOk());
                        }
                        else
                        {
                            return(ObjectParameterOperationResult.sayNo(convRez.msg));
                        }
                    }
                    catch
                    {
                        return(ObjectParameterOperationResult.sayNo("Unknown error in ObjectParameters.setObjectParameter-2"));
                    }
                }
            }

            return(ObjectParameterOperationResult.sayNo("Error in ObjectParameters.setObjectParameter: parameter not found"));
        }