У меня есть проблема с использованием атрибута XmlnsDefinition в сборке silverlight 4.
Вот контрольный пример:
В AssemblyInfo.cs проекта silverlight я добавляю следующее:
[assembly: XmlnsDefinition("urn:foo", "SilverlightApplication1")]
[assembly: XmlnsDefinition("urn:foo", "SilverlightApplication1.SomeNamespace")]
Я редактирую MainPage.xaml.cs и чтобы он выглядел так:
namespace SilverlightApplication1
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
}
}
}
namespace SilverlightApplication1.SomeNamespace
{
public class SomeControl : ContentControl
{
}
}
Теперь в MainPage.xaml у меня есть следующее:
<UserControl x:Class="SilverlightApplication1.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:foo="urn:foo">
<Grid>
<foo:SomeControl>
<TextBlock Text="Hello World"/>
</foo:SomeControl>
</Grid>
</UserControl>
Это компилируется и работает нормально. Проблема возникает, когда я добавляю атрибут x: Name к тегу SomeControl.
Это не компилируется:
<foo:SomeControl x:Name="bar">
<TextBlock Text="Hello World"/>
</foo:SomeControl>
Глядя на генерируемый файл .g.i.cs, элемент управления объявляется как
internal SomeControl bar;
В файле отсутствует либо оператор using, либо полное имя типа. Я также пробовал это в WPF и результаты такие же. Может кто-нибудь сказать мне, что, если что, я делаю не так?