mirror of
https://github.com/sbrl/PolyFeed.git
synced 2024-11-15 05:23:00 +00:00
27 lines
548 B
C#
27 lines
548 B
C#
using System;
|
|
using System.Reflection;
|
|
using System.Text.RegularExpressions;
|
|
using Nett;
|
|
|
|
namespace PolyFeed
|
|
{
|
|
public class SnakeCasePropertySelector : ITargetPropertySelector
|
|
{
|
|
public SnakeCasePropertySelector()
|
|
{
|
|
}
|
|
|
|
public PropertyInfo TryGetTargetProperty(string key, Type target)
|
|
{
|
|
string transformedKey = Regex.Replace(
|
|
key,
|
|
@"(^|_)[A-Za-z0-9]",
|
|
(match) => match.Value.Replace("_", "").ToUpper()
|
|
);
|
|
|
|
//Console.WriteLine($"{key} -> {transformedKey}");
|
|
|
|
return target.GetProperty(transformedKey);
|
|
}
|
|
}
|
|
}
|