English 中文(简体)
利用Attribute建筑商的Lambda获得方法参数
原标题:Use Lambda in Attribute constructor to get method s parameters

我甚至不敢肯定这一点,但我已用尽了我试图表明这一点的所有想法,因此,我向社区发出这一信息,并看到你的想法。 如果不可能的话,你也可能有一些想法。

我试图做一个特工类,我可以补充一种方法,使我能够使用lam语,获得每一参数的方法。


public ExampleAttribute : Attribute 
{
    public object Value { get; set; }

    public ExampleAttribute(--something here to make the lambda work--, object value)
    {
        Value = value;
    }
}

我这样想:


[Example(x=>x.Id, 4)]
[Example(x=>x.filter, "string value")]
public ActionResult Index(int Id, string filter) 
{
    return View();
}

我的理解是,我可能完全梦想这一想法。 我基本上试图书写一种模式,以便自行记录《教育、科学和技术年鉴》文件。 在最近一个工作中的项目中,我们写了十几个这样的服务,每套5至15种方法,比为每个单位配备一个文件页,更容易撰写一些内容。 我计划,一旦在我感到可以释放的地方,最终将这个项目作为公开来源公布。

最佳回答

我不相信这样做是可能的,但我不认为你需要取得进展。 相反,你可以把属性直接放在参数上,例如:

public ActionResult Index(
    [Documentation("the identifier...")]
    int id,

    [Documentation("The filter")]
    string filter
  )
{
    return ...;
}

然后,你可使用Para下参数Info.GetCustomAttributes获取参数的属性。

问题回答

如果你能够把代表作为属性参数,那将是巨大的。 这些可能性是无休止的。 不幸的是,目前还无法做到,而是在以下网址上:http://link.microsoft.com/VisualStudio/feedback/details/91066/allow-to-pass-delegates-to-attributes” rel=“nofollow noreferer”>。

据我所知,属性参数限于ool、 by、char、双、浮、长、短、str、物体、系统。 公众可及的类型和大体类型,以及上述类型的单一尺寸。

http://msdn.microsoft.com/en-us/library/a664615%28v=VS.71%29.aspx”rel=“nofollow noreferer”>MSDN Reference

这是不可能的。 允许数值清单载于C#语言光谱第17.2节。 限于

  • Constant values
  • A System.Type object
  • A one-dimensional array of either of the above

Lam

为什么要重新发明轮轮椅(至少要记载)?

微软有标准文件结构,XML文件,可编入.chm文件。

使用三重<代码>/的代号来记录您的方法:

   /// <summary>MyMethod is a method in the MyClass class.
   /// <para>Here s how you could make a second paragraph in a description. <see cref="System.Console.WriteLine"/> for information about output statements.</para>
   /// <seealso cref="MyClass.Main"/>
   /// </summary>
   public static void MyMethod(int Int1)
   {
   }`

然后可以使用<代码>< Int1 > This is an int.</param> xml to establish any paraile Value.

一旦你记录你的类别和方法,你就可使用Sand 城堡/a>将其汇编成html求助档案。

制作XML文件:

  1. Open the project s Property Pages dialog box.
  2. Clickthe Configuration Properties folder.
  3. Click the Build property page.
  4. Modify the XML Documentation File property.

为帮助您,我推荐了一个名为GhostDoc,该工具为一种方法提供背景文件生成。 它没有提供完美的文件,但它提供了良好的一般结构。

与桑卡斯尔堡一道,XML文件是记录法典和集会的重要工具。





相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

NSArray s, Primitive types and Boxing Oh My!

I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

How to Use Ghostscript DLL to convert PDF to PDF/A

How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...

热门标签