2010-01-12 2 views
0

Есть ли способ получить значение из реестра с помощью процедуры CLR, которая не связана с необходимостью реестра Microsoft.Win32 в качестве сборки в SQL Server?Использование CLR для получения значения из реестра

Я ищу, чтобы получить DigitalProductId (мне нужно будет декодировать его в строку) из реестра в proc CLR и вернуть его SQL.

Поддерживаемые Namespaces

CustomMarshalers 
Microsoft.VisualBasic 
Microsoft.VisualC 
mscorlib 
System 
System.Configuration 
System.Data 
System.Data.OracleClient 
System.Data.SqlXml 
System.Deployment 
System.Security 
System.Transactions 
System.Web.Services 
System.Xml 
System.Core.dll 
System.Xml.Linq.dll 

Могу ли я использовать метод в mscorlib для этого?

Редактировать: Я пропустил что-то здесь? Возможно, Microsoft.Win32 можно использовать в среде CLR? Редактировать: Да, я что-то упустил. Он должен быть установлен как сборка UNSAFE, а затем подписан и т. Д., Прежде чем я смогу использовать Microsoft.WIn32.

+0

Just FYI: вам не нужно устанавливать свою сборку в UNSAFE для _use_ 'Microsoft.Win32', вам нужно только' UNSAFE', если вы получаете доступ к определенному коду внутри этого класса и/или системных ресурсов, которые требуют Это. Вероятно, существует код в пространстве имен Microsoft.Win32, который будет запускаться в сборках SAFE. –

ответ

1

Под "поддерживаемых пространств имен" вы имеете в виду сборки? mscorlib содержит пространство имен Microsoft.Win32, которое предоставляет тип Registry.

0

вы могли бы попробовать использовать Win32 API непосредственно с RegOpenKeyEx (advapi32) http://www.pinvoke.net/default.aspx/advapi32/RegOpenKeyEx.html

+0

Проблема заключается в использовании внешних или не поддерживаемых библиотек в среде CLR. У меня была бы такая же проблема с необходимостью регистрации DLL как сборки в SQL. Я хотел бы сделать это, используя поддерживаемые пространства имен, только если это возможно. – Coolcoder

+0

нет, тогда я не думаю, что это возможно. –

+0

Этот ответ неверен. Это определенно возможно, так как пространство имен Microsoft.Win32 содержится в 'mscorlib.dll', который поддерживается. И я сам использую класс «RegistryKey» без необходимости регистрировать любые другие DLL-файлы в SQL Server. –

Смежные вопросы