У меня есть что-то вроде конвертера с той разницей, что класс является внутренним, а для безопасности конвертер принадлежит другой сборке (MyAssembly.dll):
namespace MyAssembly.InAnotherNameSpace
{
internal class ValueConvertor : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
...
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
....
}
}
}
И я использую InternalsVisibleToAttribute для доступа к конвертеру из проекта WPF:
....
xmlns:c="clr-namespace:MyAssembly.InAnotherNameSpace;assembly=MyAssembly"
....
<UserControl.Resources>
<ResourceDictionary>
<c:ValueConvertor x:Key="valueConvertor"/>
</ResourceDictionary>
</UserControl.Resources>
У меня проблема в XAML, не распознается класс как внутренний, а Visual Studio показывает эту ошибку:
Only public or internal classes can be used within markup. 'ValueConvertor' type is not public or internal.
Следуйте за этим ответом тема , InternalsVisible Не работает в XAML, это правда?