Я хотел бы знать больше о контексте, в котором вам это нужно, так как мне кажется, что вы уже должны знать, какое имущество вы работаете в собственности аксессоре. Однако, если вы, вероятно, можете использовать MethodBase.GetCurrentMethod() .Имя и удалить что-либо после get_/set_
.
Update:
Исходя из ваших изменений, я бы сказал, что вы должны использовать наследование, а не отражения. Я не знаю, какие данные содержатся в вашем словаре, но мне кажется, что вы действительно хотите иметь разные классы автомобилей, например, Sedan, Roadster, Buggy, StationWagon, не сохраняя тип в локальной переменной. Тогда у вас будут реализации методов, которые делают правильную вещь для этого типа автомобилей. Вместо того, чтобы узнать, какой автомобиль у вас есть, затем что-то делаете, вы просто вызываете соответствующий метод, и объект Car делает правильную вещь, основываясь на том, какой тип он есть.
public interface ICar
{
void Drive(decimal velocity, Orientation orientation);
void Shift(int gear);
...
}
public abstract class Car : ICar
{
public virtual void Drive(decimal velocity, Orientation orientation)
{
...some default implementation...
}
public abstract void Shift(int gear);
...
}
public class AutomaticTransmission : Car
{
public override void Shift(int gear)
{
...some specific implementation...
}
}
public class ManualTransmission : Car
{
public override void Shift(int gear)
{
...some specific implementation...
}
}
+1 Я тоже задавался вопросом об этом при осуществлении System.Configuration.ApplicationSettingsBase –