Сопоставить набор свойств с другим набором, где несколько свойств источника могут использоваться в правилах преобразования? - PullRequest
0 голосов
/ 24 июня 2009

У меня определен набор свойств, все значения хранятся в виде строк. Мне нужно вернуть новый набор свойств, где значение каждого нового свойства может быть получено одним из 3 способов.

  1. Прямая копия определенного исходного значения.
  2. Значение по умолчанию.
  3. Результат некоторой логики, примененной к значениям 1 или более свойств источника.

Мой подход к этой проблеме заключался в создании интерфейса IMappable, определяющего метод GetValue (Dictionary SourceValues).

Для каждого результата я определил реализацию этого интерфейса с необходимой логикой в ​​этом методе.

У меня есть фабричный метод, который возвращает IMappable на основе имени свойства:

private IMappable GetMapper(string LocalPropertyName)
{
   char[] Chars = LocalPropertyName.ToCharArray();
   Chars[0] = Char.ToUpper(Chars[0]);
   string ClassName = new string(Chars) + "Mapping";

   try
   {
      Assembly AssemblyInstance = Assembly.GetExecutingAssembly();
      Type ClassType = AssemblyInstance.GetType("MyNamespace.Rules." + ClassName, false, true);  
      return (IMappable) System.Activator.CreateInstance(ClassType);
   }
   catch (System.Exception e)
   {
       //No Mapper exists
       return new DefaultMapping(LocalPropertyName);
   }

}

Это лучший способ решить эту проблему?

Это похоже на самый элегантный, но я беспокоюсь о быстродействии загрузки динамических классов.

1 Ответ

0 голосов
/ 24 июня 2009

Это медленно? Профилируйте тестируемый профиль, а затем беспокойтесь о том, насколько он медленный или нет.,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...