IVsSingleFileGenerator.Generate 方法
执行转换并返回新生成的输出文件,时,自定义工具加载,或者输入保存文件。
命名空间: Microsoft.VisualStudio.Shell.Interop
程序集: Microsoft.VisualStudio.Shell.Interop(在 Microsoft.VisualStudio.Shell.Interop.dll 中)
语法
声明
Function Generate ( _
wszInputFilePath As String, _
bstrInputFileContents As String, _
wszDefaultNamespace As String, _
<OutAttribute> rgbOutputFileContents As IntPtr(), _
<OutAttribute> ByRef pcbOutput As UInteger, _
pGenerateProgress As IVsGeneratorProgress _
) As Integer
int Generate(
string wszInputFilePath,
string bstrInputFileContents,
string wszDefaultNamespace,
IntPtr[] rgbOutputFileContents,
out uint pcbOutput,
IVsGeneratorProgress pGenerateProgress
)
参数
- wszInputFilePath
类型:System.String
[in] 输入文件的完整路径。可能为在 Visual Studio未来版本的 nullnull 引用(在 Visual Basic 中为 Nothing) ,因此,生成器不应依赖于此值。
- bstrInputFileContents
类型:System.String
[in] 输入文件的内容。这是 UNICODE BSTR (如果输入文件是文本) 或二进制 BSTR (如果输入文件二进制)。如果输入文件是文本文件,项目系统会自动转换为 BSTR UNICODE。
- wszDefaultNamespace
类型:System.String
[in] 此参数为生成代码的自定义工具仅是有意义的。它表示生成的代码将放在的命名空间。如果参数不是 nullnull 引用(在 Visual Basic 中为 Nothing) 和不为空,自定义工具可使用以下语法将生成的代码。
' Visual Basic Namespace [default namespace]
... End Namespace
// Visual C#
namespace [default namespace] { ... }
- rgbOutputFileContents
类型:array<System.IntPtr[]
[out] 返回要写入的字节数组到生成的文件。在返回的字节数组必须包含 UNICODE 或 UTF-8 签名字节,则为基元的流。必须将 rgbOutputFileContents 的内存使用 .NET framework 调用, System.Runtime.InteropServices.AllocCoTaskMem,或等效的 Win32 系统调用, CoTaskMemAlloc。项目系统为释放该内存负责。
- pcbOutput
类型:System.UInt32%
[out] 返回计数。 rgbOutputFileContent 数组的字节。
- pGenerateProgress
类型:Microsoft.VisualStudio.Shell.Interop.IVsGeneratorProgress
[in] 对生成器可以其进度向项目系统报告的 IVsGeneratorProgress 接口的引用。
返回值
类型:System.Int32
如果方法成功,则返回 S_OK。如果失败,它会返回一个错误代码。
备注
COM 签名
从 vsshell.idl:
HRESULT IVsSingleFileGenerator::Generate(
[in] LPCOLESTR wszInputFilePath,
[in] BSTR bstrInputFileContents,
[in] LPCOLESTR wszDefaultNamespace,
[out] BYTE** rgbOutputFileContents,
[out] ULONG* pcbOutput,
[in] IVsGeneratorProgress* pGenerateProgress
);
出于性能原因,项目系统重用自定义工具的一个实例化处理多文件转换。 因此,应模型在其生存期内,自定义工具处理多个调用生成。
项目系统独立通过 IVsGeneratorProgress报告错误的解释生成的返回值。 也就是说,如果错误通过 IVsGeneratorProgress报表,此方法仍然必须返回失败的整个生成进程失败。
.NET Framework 安全性
- 对直接调用方的完全信任。此成员不能由部分信任的代码使用。有关更多信息,请参见通过部分受信任的代码使用库。