1

我已经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 版本也可能导致一些问题(但我不确定我是否完全理解这一点)。

谁能建议这可能是什么原因?什么可能是治愈方法?

4

0 回答 0