Невозможно использовать статический метод Environment.GetResourceString

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            var x = Environment.GetResourceString("test"); //compile-time error
        }
    }
}

Ошибка: «System.Environment» не содержит определения для «GetResourceString».

EDIT: OP заявил, что использует Compact Framework v3.5.

Я не понимаю, что не так с моим кодом? Спасибо!


person Stringer    schedule 25.11.2009    source источник


Ответы (2)


Environment.GetResourceString присутствует, согласно MSDN только в версии 2.0 Compact Framework. Если верить статье, ее никогда не существовало в стандартных рамках.

Что ты пытаешься сделать? Если вам нужна локализация, вам может понадобиться ResourceManager.GetString.

System.Resources.ResourceManager myManager = new 
   System.Resources.ResourceManager("ResourceNamespace.myResources", 
   myAssembly);

// Retrieves String and Image resources.
string myString = myManager.GetString("StringResource");
person Michael Petrotta    schedule 25.11.2009
comment
Так это только Compact Framework? (Я ориентируюсь на .NET 3.5) Да, это для локализации. Почему какой-то класс в BCL использует этот метод (согласно Reflector)? - person Stringer; 25.11.2009
comment
Вы пытаетесь использовать этот метод после того, как заметили, что некоторые внутренние компоненты BCL используют его? Я бы не рекомендовал это. Я предполагаю, что метод помечен internal и, возможно, помечен InternalsVisibleTo, чтобы его можно было использовать внутри BCL, но не за его пределами. - person Michael Petrotta; 25.11.2009
comment
ResourceManager поддерживается в CF, и его использование было бы правильным подходом. - person Michael Petrotta; 25.11.2009

Environment.GetResourceString не является общедоступным

internal static string GetResourceString(string key);

См. ответ Майкла Петротта о том, как получить доступ к ресурсам, или посмотрите примеры здесь http://msdn.microsoft.com/en-us/library/system.resources.resourcemanager.aspx

person Simon    schedule 25.11.2009