正しい XML 名前空間を宣言すると、Silverlight XAML の public および既定のコンストラクターを使用して独自のクラスを作成/インスタンス化できますResourceDictionary
。
ただし、名前空間内の基本クラス ライブラリの (UI 以外の) クラスのいずれかでそれを試みるとSystem.*
、型が見つからないというエラーが発生します。
例えば:
<UserControl x:Class="BclObjectsInXamlDemo.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"
xmlns:crypt="clr-namespace:System.Security.Cryptography;assembly=System.Core"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">
<Grid x:Name="LayoutRoot" Background="White">
<Grid.Resources>
<crypt:AesManaged x:Key="AesManaged" />
</Grid.Resources>
</Grid>
</UserControl>
エラーが表示されますThe type 'AesManaged' was not found because 'clr-namespace:System.Security.Cryptography;assembly=System.Core' is an unknown namespace. [Line: 12 Position: 37]
。
簡単にできると思っていたので困っています。私は Visual Studio 2012 と Silverlight 5 を使用しています。System.Core
アセンブリはプロジェクトで正しくリンクされています (既定では)。XAML で名前空間を別の方法で宣言して機能させることはできますか? もしそうなら、どのように?