Странное поведение с Microsoft. WindowsCE.Forms

Как насчет

my_iterable = str

это проходит ваш тест.

Если говорить серьезно, Iterable в модуле коллекций обеспечивает:

def __iter__(self):
    while False:
        yield None

Это можно считать «наиболее питоническим», потому что это то, что использует сам Python.

Обратите внимание, что технически все ответы до сих пор предоставляют итераторов (__iter__ + next), а не итераций (просто __iter__).

6
задан Nifle 16 June 2009 в 07:57
поделиться

3 ответа

Эта проблема стоила мне пары часов. Я решил это, добавив Microsoft.WindowsCE.Forms.dll в GAC с помощью gacutil. Надеюсь, это поможет. Робин

4
ответ дан 17 December 2019 в 00:13
поделиться

Да, это вполне ожидаемо. Поскольку это статическое свойство (с которым я бы не согласился в первую очередь), разработчик должен инициализировать его, что означает загрузку Microsoft.WindowsCE.Forms, что означает загрузку точек входа для конкретных устройств. По общему признанию, сообщение об ошибке - отстой, но тогда у конструктора, поддерживающего устройства, есть много забавных проблем , причины которых трудно предугадать.

Я бы попробовал переместить его в другой класс или обернуть его с проверкой, если вы в дизайнере. У нас работает что-то вроде этого:

protected bool IsDesignTime
{
    get
    {
        // Determine if this instance is running against .NET Framework 
        // by using the MSCoreLib PublicKeyToken
        System.Reflection.Assembly mscorlibAssembly = typeof(int).Assembly;
        if ((mscorlibAssembly != null))
        {
            if (mscorlibAssembly.FullName.ToUpper().EndsWith("B77A5C561934E089"))
            {
                return true;
            }
        }
        return false;
    }
}
2
ответ дан 17 December 2019 в 00:13
поделиться

Если вы скопируете Microsoft.WindowsCE.Forms.dll в подпапку вашего проекта, например, а затем добавите следующее к событиям перед сборкой вашего проекта, он также будет работать просто хорошо, если вы, например. переустановите свой компьютер:

"C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\gacutil.exe" /i "$(ProjectDir)SubFolder\Microsoft.WindowsCE.Forms.dll"
1
ответ дан 17 December 2019 в 00:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: