Использование System.Globalization.CultureInfo из VBScript - PullRequest
3 голосов
/ 08 февраля 2011

Я не могу понять, как использовать класс .NET: System.Globalization.CultureInfo.

Согласно документации , он имеет ComVisibleAttribute = True, что, как я думал, означало, что я могиспользуйте его из VBScript.Однако, когда я пытаюсь использовать его следующим образом:

Set ci = CreateObject("System.Globalization.CultureInfo")

я получаю:

Microsoft VBScript runtime error: ActiveX component can't create object: 'System.Globalization.CultureInfo'

Возможно, я что-то неправильно понимаю, и этот класс просто не может быть использован из VBScript?

Ответы [ 3 ]

2 голосов
/ 08 февраля 2011

Простой ответ: список классов .NET Framework, доступных из VBScript, находится в разделе реестра HKEY_CLASSES_ROOT:
COM-callable .NET classes
Класс System.Globalization.CultureInfo отсутствует, поэтому он не предназначен для сценариев.

Ответ Techy: Предпосылки взаимодействия COM для классов .NET описаны в этой статье MSDN , и, как сказал Томас, класс CultureInfo не подходит, поскольку в нем отсутствует конструктор без параметров.

2 голосов
/ 08 февраля 2011

Я не думаю, что это возможно ... CultureInfo не имеет конструктора без параметров, а CreateObject не позволяет указывать аргументы конструктора

1 голос
/ 08 февраля 2011

CreateObject создает и возвращает ссылку на объект автоматизации .COM-объект в общем случае не является объектом автоматизации.

Я полагаю, что System.Globalization.CultureInfo не поддерживает IDispatch, поэтому его нельзя использовать в VBScript.

...