如果我使用.net2.0这个 X项目,并且 X项目正在调用正在使用的 Y项目,那没关系.net3.5 ..我在 Y项目中获得了自定义按钮,我在 X项目中使用了该按钮, Y项目中有一个方法有LINQ和 X项目正在调用该方法...我无法测试它,因为我安装了最新的.net框架.. :)
这是我的项目代码,其中包含.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语句.. :)
答案 0 :(得分:3)
如果执行此操作的计算机上未安装3.5框架,则它将失败,因为System.Linq.dll
将不存在。您可以使用LINQBridge与.NET 2.0和C#3.0(这将使您能够访问LINQ到对象的重新实现),但实际上可能更容易让客户端升级。 2.0现在已经很老了。
或者......如果你需要的只是一个where
,那么就有了更简单的路线。例如:
foreach (String drives in Environment.GetLogicalDrives())
{
if(!Enum.GetName(typeof(DriveType), GetDriveType(s))
.Equals(DriveType.Removable))
{
continue;
}
MessageBox.Show(drives);
}
答案 1 :(得分:0)
.NET 2.0项目无法调用.NET 3.5项目中的方法。