Monotouch Невозможно неявно преобразовать тип System.Collections.Generic.Stack в тот же тип - PullRequest
2 голосов
/ 11 марта 2011

Я использую универсальный тип стека в monotouch (пространство имен System.Collections.Generic). В отдельном проекте nunit, который ссылается только на сборки из пакета monotouch, я расширяю свой класс monotouch и заново создаю стек:

using System.Collections.Generic;
namespace Tests
{
public class MyExtendedClass : MyExtendableClass
    {
        public MyExtendedClass ()
        {
            m_myStackVariable = new Stack<string> (); 

, которое выдает мне следующее сообщение об ошибке:

Невозможно неявно преобразовать тип System.Collections.Generic.Stack<string> в System.Collections.Generic.Stack<string>

Когда я пытаюсь "перейти на базу" в типе Stack, он показывает мне mscorlib в браузере сборки, который в пространстве имен System.Collections.Generic не содержит тип Stack <>, как System.dll в браузер сборки.

Кто-нибудь имеет представление о том, что здесь происходит? Существуют ли два типа в одном и том же пространстве имен с одинаковыми именами, которые отличаются между этими проектами? Что дает мне горе здесь?

1 Ответ

0 голосов
/ 15 марта 2011

Убедитесь, что ваш проект NUnit ссылается на основные библиотеки MonoTouch. Тем не менее, иногда даже это не решает проблему в зависимости от вашего кода.

Проект NUnit будет использовать библиотеки для Mono на Mac, поэтому библиотеки MonoTouch, возвращающие Stack (T), например, не могут быть преобразованы в Stack (T) на Mac.

Эта проблема в основном сделала для меня невозможным юнит-тестирование, к счастью, использование ключевого слова "var" может обойти это, но это зависит от вашей ситуации.

Можете ли вы опубликовать больше кода? Там может быть обходной путь.

...