查找哪个函数使用某个属性

时间:2016-01-06 08:03:16

标签: c#

我正在阅读一个opensource c#项目,在一些基础类中,有很多自定义属性,如下所示:

      $.ajax({
            crossDomain: true,
            type: 'POST',
            url: "http://localhost:9091/employeeservice/employee/create",
            data: JSON.stringify({
                "id": 10,
                "first_name": "narayan",
                "last_name": "bhat",
                "email": "farah@gmail.com",
                "phone": "4545454545"
            }),
            error: OnErrorCall,
            success: OnSuccessCall,
            dataType: "json",
            contentType: "application/json"
        });


        function OnSuccessCall(response) {
            alert(response.d);
        }


        function OnErrorCall(response) {
            alert(response.status + " " + response.statusText);
        }

现在我需要了解这些自定义属性,但没有文档。 所以我需要找到哪些函数基于这些自定义属性做事。从阅读这些函数,我可以得到意义。

有没有一种彻底的方法来定位项目中的函数,该函数会根据某些自定义属性做什么?

3 个答案:

答案 0 :(得分:2)

属性旨在将元数据添加到代码元素(例如类)。任何代码都可以通过.NET Reflection as in this answer读取此元数据。

某些属性由编译器读取(例如[Serializable]),有些属性由特定的.NET框架读取,例如ASP.NET MVC(例如[Route]only works if you call RouteTable.Routes.MapMvcAttributeRoutes()) ,您可以为自己的目的制作自定义属性。

一般情况下,我建议您阅读有关您有兴趣查找其功能的特定属性的文档。如果您需要查看使用它的代码,您可以使用.NET ReflectorILSpy等工具(假设您知道代码所在的.NET程序集 - 再次通过文档)。

如果你能解释为什么需要它,这可能会有所帮助,因为在知道哪个函数查找特定属性(除非它是你自己的自定义属性)似乎没什么好处,只要你知道它的用途。

答案 1 :(得分:2)

属性只不过是一种信息。此信息可以附加到您的方法,类,命名空间,程序集等。

访问以下网址后,您将非常清楚。

答案 2 :(得分:0)

我建议你在某处写一段代码,然后输出到文件,控制台或调试器。

首先您需要遍历每种类型的每个方法,然后检查它是否具有您正在寻找的属性。我认为它是select object_type from dba_objects where owner = ''anotheruserthansa' and object_name = 'anotheruserthansa'

例如:

ParameterAttribute

有关获取自定义属性的详细信息,请阅读Here。此外,这是反思的一部分,您可以了解有关Here

的更多信息