Сразу скажу, с проблемой столкнулся в Silverlight приложении, после того как решил проблему, с такой же ситуацией столкнулся Потапов Андрей, когда писал dll загрузки файлов в SharePoint. Поэтому решил отписаться, вдруг еще кому сэкономлю полчасика поиска.
Собственно проблема - делаем ссылку на внешнюю сборку, из своей сборки. А потом, в приложении которое использует нашу сборку возникает непонятный Exception.
Итак, у нас есть SL приложение и SL библиотека, в которой захотелось использовать Toolkit.
Как это выглядит:
В контроле может быть так:
Собственно проблема - делаем ссылку на внешнюю сборку, из своей сборки. А потом, в приложении которое использует нашу сборку возникает непонятный Exception.
Итак, у нас есть SL приложение и SL библиотека, в которой захотелось использовать Toolkit.
Как это выглядит:
В контроле может быть так:
<UserControl x:Class="Controls.WebLib.RedRectangleWithContextMenu" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:toolkit="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400"> <Rectangle Fill="Red" RadiusX="10" RadiusY="10" x:Name="rcBackground"> <toolkit:ContextMenuService.ContextMenu> <toolkit:ContextMenu> <toolkit:MenuItem Header="Зеленый" Click="MenuItem_Click" /> toolkit:ContextMenu> toolkit:ContextMenuService.ContextMenu> Rectangle> UserControl>
Ну и в главную форму, не забываем кинуть наш контрол:
<UserControl xmlns:my="clr-namespace:Controls.WebLib;assembly=Controls.WebLib" x:Class="Main.WebApp.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400"> <Grid x:Name="LayoutRoot" Background="White"> <my:RedRectangleWithContextMenu /> Grid> UserControl>Первое, что нас напряжет, это вот такой его вид:
Но приложение сбилдится, и даже запуститься, но во время выполнения упадет:
На самом деле все просто, главное приложение пытается создать экземпляр объекта из сборки... На которую у него нет ссылки! Чтобы все заработало, достаточно ее добавить:
Собственно все начинает работать:
Комментариев нет:
Отправить комментарий