Vb.net 直接访问对象的完整字符串表示形式

Vb.net 直接访问对象的完整字符串表示形式,vb.net,smo,Vb.net,Smo,我正在尝试将对象的内容记录到文本文件中。如果我在即时窗口中对对象本身执行debug.print,它将打印对象属性的所有值: ?mDb.DatabaseOptions {Microsoft.SqlServer.Management.Smo.DatabaseOptions} AnsiNullDefault: False ... UserData: Nothing 但是,由于类型不匹配,我似乎无法在代码中将其作为字符串访问。我假设我可以使用.ToString方法获取此信息,但

我正在尝试将对象的内容记录到文本文件中。如果我在即时窗口中对对象本身执行
debug.print
,它将打印对象属性的所有值:

?mDb.DatabaseOptions
{Microsoft.SqlServer.Management.Smo.DatabaseOptions}
    AnsiNullDefault: False
    ...
    UserData: Nothing
但是,由于类型不匹配,我似乎无法在代码中将其作为字符串访问。我假设我可以使用
.ToString
方法获取此信息,但返回的只是没有任何属性或值的对象描述:

?mDb.DatabaseOptions.ToString
"Microsoft.SqlServer.Management.Smo.DatabaseOptions"

我缺少什么?

Debug.Print为您枚举所有属性。这就是你要找的吗?如果是这样,则必须通过反射检查所有属性。

。ToString是基础对象上的函数(请参阅)。Write是一个函数,它可以通过编写值的属性进行迭代

正如斯图所说,你可以自己用反射来做


您还可以添加/更改跟踪侦听器,以便在其他位置写出信息。

听起来我需要使用反射。我在实际执行时遇到了一些问题,因此我发布了一个后续问题: