public interface MixinWithProperty : Object { public int property { get { return test_get(); } set { test_set(value); } } public abstract int test_get(); public abstract void test_set(int value); } public class SomeClass : Object, MixinWithProperty { int _test; public double some_other_property { get; set; } public int test_get() { return _test; } public void test_set(int value) { _test = value; } } void main() { SomeClass sc = new SomeClass(); weak ParamSpec[] params = sc.get_class().list_properties(); foreach (ParamSpec p in params) stdout.printf("%s\n", p.name); }