用于受管运行时中的元素的命令式属性的制作方法_3

文档序号:8269372阅读:来源:国知局
[0053] 其他技术可被用来移除或以其他方式禁用设置该元数据的指令。这些技术的一些 示例包括向元数据提供回调,其中该回调指示该指令是否已被移除或以其他方式禁用、设 置属性等。另一示例包括调用API、提供元数据标识符、以及指示该指令要被移除或以其他 方式禁用等。上述例子并不旨在是包括一切的或是穷举的。的确,基于此处的教导,本领域 技术人员可认识到可使用其他技术来移除或以其他方式禁用设置元数据的指令,而不背离 此处所描述的主题的各方面的精神或范围。
[0054] 6.递归参数。该API可包括当递归发生时要如何应用该元数据的参数。此参数可 指示该元数据可与特定递归层级相关联,以使得元数据消费者可获得递归期间设置该元数 据的最不新近的、最新近的、或某个其他时间。
[0055] 7.关系参数。该API可允许指示该调用与其他当前栈帧的关系以标识逻辑元素的 参数。关系参数的一些示例包括第一个设置者取胜,最后一个设置者取胜,设置元数据并且 忽略嵌套帧中的所有后续设置者,仅针对当前帧设置元数据,以及诸如此类。在第一个设置 者取胜中,由要设置该元数据的第一个栈帧所设置的元数据被保留,而由稍后的栈帧尝试 设置的其他元数据被丢弃或忽略。在最后一个设置者取胜中,由要设置该元数据的最后一 个栈帧所设置的元数据被保留,而由稍后的栈帧尝试设置的其他元数据被丢弃或忽略。
[0056] 在设置元数据并且忽略嵌套帧中的所有后续设置者中,由外部帧设置的元数据被 保留,而该外部帧内的栈帧尝试设置的其他元数据被丢弃或忽略。在仅针对当前帧设置元 数据中,如果该元数据是在另一帧中设置的,则针对每一帧的单独值被保留(而不是盖写 或丢弃值)。
[0057] 8.回调参数。在一个实施例中,一个或多个回调函数可作为参数被提供给该API。 举例而言,诸如:
[0058]SetAttribute ( " Identifier",GenValue);
[0059] 的语句可被开发者插入到代码中。回调函数GenValue可被运行时调用以提供元 数据。该回调函数可使用运行时状态来计算该元数据。
[0060] 在此实施例中,该元数据的计算可被推迟到在该代码中遇到该语句之后的一时 亥|J。例如,该运行时可懒惰地等待调用该GenValue函数,直到该运行时需要该元数据。
[0061] 9.阶段。在一个实施例中,该API可包括指示该元数据设置语句何时要被评估的 参数。例如,该参数可指示该元数据设置语句要在第一次解析、第二次解析或第N次解析期 间、在执行期间、在第一次编译或重编译期间、或在某个其他阶段期间被评估。
[0062] 10.有效载荷。该API可包括指示该元数据的参数。该有效载荷参数可包括元数 据或可包括或引用用于使用在该程序的执行期间可用的程序状态来创建该元数据的指令 (例如,编程语句)。例如,有效载荷可包括实际元数据、在执行时生成该元数据的代码、或 在调用时生成该元数据的回调(例如,对代码的引用)。
[0063] 对API的调用的类型的一些示例性示例包括:
[0064] 1. SetAttribute( "foo",…)。在此示例中,带显式静态标识符"foo"以及零个 或更多个其他参数(由…指示)地调用该API。
[0065] 2.SetAttribute(objfoo,…)。在此示例中,该API可通过允许用属性在对象中 指定关于该元数据的信息来将本可由独立的参数指定的数据相组合。例如,对象(例如, objfoo)可具有标识符属性,以及范围属性、"应用于"属性以及其他属性中的一个或多个。 这一点的一个示例由以下小代码段来解说:
【主权项】
1. 一种至少部分地由计算机实现的方法,所述方法包括: 将代码加载到受管运行时环境的存储器中; 评估所述代码的指令,所述指令指示第一标识符和有效载荷,所述第一标识符担当能 用于获得所述有效载荷的查找数据的至少一部分,所述有效载荷包括W下的一者或多者: 元数据、在执行时计算该元数据的代码、W及指向在执行时计算该元数据的代码的引用; 获得要与所述元数据相关联的逻辑元素的第二标识符,所述第二标识符担当所述查找 数据的至少一部分;W及 将所述第一标识符、所述第二标识符、W及所述有效载荷存储在存储中,所述存储是所 述受管运行时环境能访问的。
2. 如权利要求1所述的方法,其特征在于,获得逻辑元素的第二标识符包括经由应用 编程接口来接收所述第二标识符。
3. 如权利要求1所述的方法,其特征在于,进一步包括接收"应用于"参数,并且其中获 得逻辑元素的第二标识符包括使用所述"应用于"参数和所述指令的范围来确定所述逻辑 兀素。
4. 如权利要求1所述的方法,其特征在于,进一步包括接收指示在从所述代码移除所 述指令之前允许所述指令被用来设置所述元数据的最大次数的参数。
5. 如权利要求1所述的方法,其特征在于,对在执行时计算所述元数据的代码的所述 引用包括对在执行时从在运行时期间可用的状态来计算所述元数据的回调函数的引用。
6. 如权利要求1所述的方法,其特征在于,进一步包括接收标识所述指令的上下文的 数据并将所述数据存储在所述存储上维持有效载荷W及针对设置所述有效载荷的每个指 令的上下文的集合中。
7. -种在计算环境中的系统,包括: 能操作W存储第一标识符、第二标识符、W及有效载荷的存储,所述第一标识符和所述 第二标识符一起形成能用于从所述存储获得所述有效载荷的查找数据,所述有效载荷包括 W下的一者或多者;元数据、在执行时计算所述元数据的代码、指向在执行时计算所述元数 据的代码的引用、标识与所述元数据相关联的逻辑元素的第二标识符; 能操作W执行程序的指令并维护与其相关联的状态的受管运行时环境;W及 元数据管理器,所述元数据管理器能操作W从作为加载到所述受管运行时环境的存储 器中的程序的一部分的所执行指令接收所述第一标识符W及所述有效载荷,并且使得所述 第一标识符和所述有效载荷被存储在所述存储中。
8. 如权利要求7所述的系统,其特征在于,所述元数据管理器进一步能操作W将所述 第二标识符作为由所述所执行指令所指示的显式参数接收。
9. 一种具有计算机可执行指令的计算机存储介质,所述计算机可执行指令在被执行时 执行W下动作,包括: 在应用编程接口处,响应于受管运行时环境执行用户代码的指令来接收第一标识符、 第二标识符和有效载荷,所述第一标识符和所述第二标识符一起形成能用于从所述应用编 程接口请求所述有效载荷的查找数据,所述有效载荷包括W下的一者或多者;元数据、在执 行时计算所述元数据的代码、指向在执行时计算所述元数据的代码的引用、标识与所述元 数据相关联的逻辑元素的第二标识符;W及 在存储中维护所述第一标识符、所述第二标识符、w及所述有效载荷。
10.如权利要求9所述的计算机存储介质,其特征在于,进一步包括在所述应用编程接 口处接收附加信息,所述附加信息包括W下的一者或多者;编组标识符、"应用于"参数、指 示所述指令何时将被移除或禁用的参数、W及指示用于与所述元数据相关联的递归层级的 参数。
【专利摘要】本文所描述的主题的各方面涉及命令式属性。在各方面中,受管运行时环境的元数据可通过包括于在所述受管运行时环境中执行的程序的代码中的命令式语句来设置。该元数据可与标识所述元数据的查找数据相关联。该查找数据可从由命令式语句提供的标识符以及可被显式或隐式提供的逻辑元素的标识符形成。可在解析时、运行时、或另一时间计算该元数据,并且可基于对在该元数据被计算时对受管运行时环境可用的状态来计算该元数据。
【IPC分类】G06F11-36, G06F9-455
【公开号】CN104583970
【申请号】CN201380043599
【发明人】M·C·范宁, G·B·米斯凯利, A·甘地, T·S·莱斯, T·H·基姆
【申请人】微软公司
【公开日】2015年4月29日
【申请日】2013年8月15日
【公告号】EP2885712A1, US9135034, US20140053142, WO2014028784A1
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1