C# 将域实体属性映射到Word书签

C# 将域实体属性映射到Word书签,c#,reflection,expression-trees,custom-attributes,C#,Reflection,Expression Trees,Custom Attributes,我们需要打印带有书签的Word文档。我们还有一些域实体,其属性映射到Word文档中的一个(或多个)书签。现在,为了测试,我们有一个switch语句(foo是域实体): 我不想在框架中为Foo的属性添加属性。这看起来既混乱又错误,因为域实体不应该知道所有这些一次性的应用程序需求 一个想法是创建书签名称到域实体属性的映射。可以创建一个表示书签名称的枚举,然后向这些枚举元素添加表示域实体属性的属性。属性必须指定这些属性,我不知道是否可以这样做。这里可以使用表达式树吗 还有别的选择吗?我只想将域实体属性

我们需要打印带有书签的Word文档。我们还有一些域实体,其属性映射到Word文档中的一个(或多个)书签。现在,为了测试,我们有一个switch语句(foo是域实体):

我不想在框架中为Foo的属性添加属性。这看起来既混乱又错误,因为域实体不应该知道所有这些一次性的应用程序需求

一个想法是创建书签名称到域实体属性的映射。可以创建一个表示书签名称的枚举,然后向这些枚举元素添加表示域实体属性的属性。属性必须指定这些属性,我不知道是否可以这样做。这里可以使用表达式树吗

还有别的选择吗?我只想将域实体属性映射到字符串文本

解决这一问题的最佳方法是什么?

我刚才说:

    private static void MapBookmarksToFooProperties()
    {
        if (_bookmarkToFooPropertyMapping != null) { return; }  // We already created the mapping.

        _bookmarkToFooPropertyMapping = new Dictionary<string, Func<Foo, string>>();

        // Associate Word document bookmarks to their properties within a Foo object.

        _bookmarkToFooPropertyMapping.Add("dist", foo => foo.Measurment.Distance);
        _bookmarkToFooPropertyMapping.Add("serialNo", foo => foo.SerialNumber);
        // More mapping here
    }     
    private static void MapBookmarksToFooProperties()
    {
        if (_bookmarkToFooPropertyMapping != null) { return; }  // We already created the mapping.

        _bookmarkToFooPropertyMapping = new Dictionary<string, Func<Foo, string>>();

        // Associate Word document bookmarks to their properties within a Foo object.

        _bookmarkToFooPropertyMapping.Add("dist", foo => foo.Measurment.Distance);
        _bookmarkToFooPropertyMapping.Add("serialNo", foo => foo.SerialNumber);
        // More mapping here
    }     
return _bookmarkToFooPropertyMapping[bookmark.Name](foo);