在C#中内联操作对象的推荐方法是什么?

时间:2016-04-13 19:41:08

标签: c#

我正在尝试从WebApi操作中传递一个相当强大的匿名对象,并且这样做是希望将所有相关逻辑保持在一起。我遇到的问题是我无法以这种方式设置对象的属性。我的第一个解决方案是执行以下操作:

AwbNumber = new Func<JSchema>(() =>
            {
                var s = gen.Generate(typeof(string))
                s.Pattern = "^[0-9a-zA-Z]{0,32}$";
                return s;
            })()

但我对此并不是很疯狂,所以我决定制作一个扩展方法,允许我通过Action来操纵对象的属性。

public static class ObjectExtensions
{
    public static T Manipulate<T>(this T obj, Action<T> initializer)
    {
        initializer(obj);
        return obj;
    }
}

AwbNumber = gen.Generate(typeof(string)).Manipulate(
                (s) =>
                {
                    s.Pattern = "^[0-9a-zA-Z]{0,32}$";
                })

我对这个解决方案感到满意,但似乎这可能是一种常见的情况,所以我想知道在.NET中是否存在这样的东西我找不到。或者我是否完全错过了这个问题的另一种解决方案?

0 个答案:

没有答案