我已经TypeForwardedTo
使用接受的答案中的建议实现了很多路线,Is it possible to use a Portable Class Library that references System.Net in MonoDroid?
但是,我现在尝试将 TypeForwardTo(System.Windows.Input.ICommand) 添加到列表中,并且由于某种原因这种类型拒绝工作。
基本上我得到的错误信息是:
错误 5 命名空间“System”中不存在类型或命名空间名称“Windows”(您是否缺少程序集引用?) C:\Projects\Misc\MVVMCROSS\Cirrious\System.Windows.Touch\Forwarding.cs 9 42 System.Windows.Touch
我不明白为什么当我在 Reflector 中查看 System.dll 的 VSMonoTouch 副本时,我可以清楚地看到 ICommand 类型:
.namespace System.Windows.Input
{
.class public interface abstract auto ansi ICommand
{
.event [mscorlib]System.EventHandler CanExecuteChanged
{
.addon instance void System.Windows.Input.ICommand::add_CanExecuteChanged(class [mscorlib]System.EventHandler)
.removeon instance void System.Windows.Input.ICommand::remove_CanExecuteChanged(class [mscorlib]System.EventHandler)
}
.method public hidebysig newslot abstract virtual instance bool CanExecute(object parameter) cil managed
{
}
.method public hidebysig newslot abstract virtual instance void Execute(object parameter) cil managed
{
}
}
}
System.dll 中的其他类型转发正常 - 即只有最后一行失败:
[assembly: TypeForwardedTo(typeof(System.Collections.ObjectModel.ObservableCollection<>))]
[assembly: TypeForwardedTo(typeof(System.Collections.ObjectModel.ReadOnlyObservableCollection<>))]
[assembly: TypeForwardedTo(typeof(System.Collections.Specialized.INotifyCollectionChanged))]
[assembly: TypeForwardedTo(typeof(System.Collections.Specialized.NotifyCollectionChangedAction))]
[assembly: TypeForwardedTo(typeof(System.Collections.Specialized.NotifyCollectionChangedEventArgs))]
[assembly: TypeForwardedTo(typeof(System.Collections.Specialized.NotifyCollectionChangedEventHandler))]
[assembly: TypeForwardedTo(typeof(System.Windows.Input.ICommand))]
另外: - 我知道 MonoDroid 重定向工作正常...... - 我知道 System.Windows.Input.ICommand 是最近添加到 MonoTouch 的 - 我怀疑 VSMonoTouch 使用 .Net 框架的事实1.0 版本也可能导致一些问题(但我不确定我是否完全理解这一点)。
谁能建议这可能是什么原因?什么可能是治愈方法?