В нашей библиотеке есть тип Action. Мы поддерживаем VS2005, 2008 и теперь пытаемся поддержать VS2010. Когда я включаю пространство имен, содержащее наш тип «Action», а также «System», в файл и пытаюсь его использовать, оно выдает неоднозначный ссылочный вызов между нашим типом Action и делегатом System.Action. Это происходит только в VS2010 и не выдает ошибку в VS2008 или VS2005, даже если с делегатом Action ничего не изменилось (пространство имен, сборка, все то же самое между 3.5 и 4.0). Есть идеи, почему это может происходить?
UPDATE:
Я создал простое приложение, чтобы воспроизвести это:
Class1.cs:
using System;
using System.Collections.Generic;
using System.Text;
namespace Namespace1
{
public enum Action
{
Mouse,
Keyboard
}
}
Class2.cs:
using Namespace1;
using System;
using System.Collections.Generic;
using System.Text;
namespace Namespace2
{
public class Class2
{
public Class2()
{
Action a;
}
}
}
Приведенный выше код прекрасно компилируется в VS2008, но выдает ошибку в VS2010: «ошибка CS0104:« Действие »является неоднозначной ссылкой между« Namespace1.Action »и« System.Action »»
Я получаю ту же ошибку, когда использую VS2010 и целевой Framework 3.5 вместо 4.0.
Спасибо,
Niranjan