Я пытаюсь создать компонент C # WinRT для использования в приложениях в стиле metro (win8), и у меня возникают проблемы с проецируемыми типами.
Кажется, что типы данных IVector <> и IMap <> недоступныиз-за их уровня защиты?
Моя библиотека образцов WinMD имеет один класс:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Windows.Foundation.Collections;
namespace ClassLibrary1
{
public sealed class Class1
{
public IVector<string> foo()
{
return new List<string>();
}
}
}
Я получаю следующие ошибки компилятора:
Inconsistent accessibility: return type 'Windows.Foundation.Collections.IVector<string>' is less accessible than method 'ClassLibrary1.Class1.foo()'
'Windows.Foundation.Collections.IVector<string>' is inaccessible due to its protection level
Что я делаю неправильно?
РЕДАКТИРОВАТЬ:
Ах, ха!
Оказывается, я не должен использовать имена типов WinRT напрямую, а вместо этого использовать их переведенные имена .NET.
Правильный код выглядит так:
namespace ClassLibrary1
{
public sealed class Class1
{
public IList<string> foo()
{
return new List<string>();
}
}
}