每个C#项目上都有不同的Target.Net框架



如果我有这个使用.net2.0的X项目,而那个X项目在调用使用.net3.5的Y项目项目中有一个方法具有LINQ,而X项目

这是我在项目中的代码,它有.net3.5

    [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
    public static extern int GetDriveType(string lpRootPathName);        
    public enum DriveType : int
    {
        Unknown = 0,
        NoRoot = 1,
        Removable = 2,
        Localdisk = 3,
        Network = 4,
        CD = 5,
        RAMDrive = 6
    }
    var selectedDrives = from s in Environment.GetLogicalDrives() where Enum.GetName(typeof(DriveType), GetDriveType(s)).Equals(DriveType.Removable) select s;
        foreach (String drives in selectedDrives)
        {
            MessageBox.Show(drives);
        }

如果我做错了,也要更正LINQ语句..:)

如果执行此操作的机器上没有安装3.5框架,它将失败,因为System.Linq.dll将不存在。您可以将LINQBridge与.NET 2.0和C#3.0一起使用(这将使您能够访问LINQ to Objects的重新实现),但实际上,让客户端升级可能更容易。2.0现在已经很老了。

或者。。。如果你只需要一个where,那么有更简单的路线。例如:

foreach (String drives in Environment.GetLogicalDrives())
{
    if(!Enum.GetName(typeof(DriveType), GetDriveType(s))
        .Equals(DriveType.Removable))
    {
        continue;
    }
    MessageBox.Show(drives);
}

.NET 2.0项目不能调用.NET 3.5项目中的方法。

相关内容

  • 没有找到相关文章

最新更新