SafeToPrepareAttribute 类
通过将 ExecuteForPrepare 属性设置为 true,标记程序集中可以安全运行的方法。
继承层次结构
Object
Attribute
Microsoft.AnalysisServices.AdomdServer.SafeToPrepareAttribute
命名空间: Microsoft.AnalysisServices.AdomdServer
程序集: msmgdsrv(在 msmgdsrv.dll 中)
语法
声明
Public NotInheritable Class SafeToPrepareAttribute _
Inherits Attribute
用法
Dim instance As SafeToPrepareAttribute
public sealed class SafeToPrepareAttribute : Attribute
public ref class SafeToPrepareAttribute sealed : public Attribute
[<SealedAttribute>]
type SafeToPrepareAttribute =
class
inherit Attribute
end
public final class SafeToPrepareAttribute extends Attribute
SafeToPrepareAttribute 类型公开以下成员。
构造函数
名称 | 说明 | |
---|---|---|
SafeToPrepareAttribute | 初始化 SafeToPrepareAttribute 类的新实例。 |
顶部
属性
名称 | 说明 | |
---|---|---|
IsSafeToPrepare | 获取一个值,该值指示是否通过将 ExecuteForPrepare 属性设置为 true,关联的方法可以安全地运行。 | |
TypeId | (从 Attribute 继承。) |
顶部
方法
名称 | 说明 | |
---|---|---|
{dtor} | 释放 SafeToPrepareAttribute 使用的所有资源。 | |
Equals | (从 Attribute 继承。) | |
GetHashCode | (从 Attribute 继承。) | |
GetType | (从 Object 继承。) | |
IsDefaultAttribute | (从 Attribute 继承。) | |
Match | (从 Attribute 继承。) | |
ToString | (从 Object 继承。) |
顶部
显式接口实现
名称 | 说明 | |
---|---|---|
System#Runtime#InteropServices#_Attribute#GetIDsOfNames | (从 Attribute 继承。) | |
System#Runtime#InteropServices#_Attribute#GetTypeInfo | (从 Attribute 继承。) | |
System#Runtime#InteropServices#_Attribute#GetTypeInfoCount | (从 Attribute 继承。) | |
System#Runtime#InteropServices#_Attribute#Invoke | (从 Attribute 继承。) |
顶部
注释
如果用户定义函数 (UDF) 返回一个 DataTable,该 UDF 应可以通过在 ExecuteForPrepare 属性设置为 true 的情况下运行来为执行做好准备。 要为执行做好准备,UDF 应确定需要返回的 DataTable 结构,然后返回具有相应结构的空 DataTable。
示例
在以下示例中,使用一个简单 UDF 来创建 DataTable。 如果在 ExecuteForPrepare 属性设置为 true 的情况下运行 UDF,UDF 将返回 DataTable 的空版本。 如果在 ExecuteForPrepare 属性设置为 false 的情况下运行 UDF,UDF 将继续执行,填充 DataTable 并返回已填充的 DataTable。
[SafeToPrepare(true)]
public System.Data.DataTable GetPreparedTable()
{
System.Data.DataTable results = new System.Data.DataTable();
results.Columns.Add("A", typeof(int));
results.Columns.Add("B", typeof(string));
if (Context.ExecuteForPrepare)
{
// If preparing, return just the schema with no data
return results;
}
//Otherwise return data
object[] row = new object[2];
row[0] = 1;
row[1] = "A";
results.Rows.Add(row);
row[0] = 2;
row[1] = "B";
results.Rows.Add(row);
return results;
}
线程安全
此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。不保证所有实例成员都是线程安全的。