mardi 5 septembre 2017

Convert instance method to class method C# [duplicate]

This question already has an answer here:

I have a instance method that creates a new instance of a class. I would like for this to be a class method. The problem is that I get an error when trying to call GetType() in the static method. Is it possible to convert this method to a static method ?

error

An object reference is required for the non-static field, method or property 'object.GetType()'.

Customer.New

    public object WithAttributes(ExpandoObject valueObject)
    {
        var properties = GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance)
            .Where(p => p.GetSetMethod() != null);

        var self = Activator.CreateInstance(GetType());
        var values = (IDictionary<string, object>)valueObject;
        foreach (var property in properties)
        {
            if (values.Keys.Contains(property.Name))
            {
                var val = values[property.Name];
                property.SetValue(self, values[property.Name]);
            }
        }

        return self;
    }





Aucun commentaire:

Enregistrer un commentaire