如何在 Visual Studio 中使用 LINQPad 脚本?
How do I use LINQPad scripts in Visual Studio?
问题。
如何在 Visual Studio 中使用 LINQPad 脚本?
说明。
我在 LINQPad
.
中创建了 Class Service.linq
class
如何在 Visual Studio
中使用 Class Service.linq
class?
也就是说,我可以实现以下场景吗?
场景:
- 将
ClassService.linq
导入到 Visual Studio
中的项目;
- 与
Visual Studio
中的项目同步 ClassService.linq
;
(同步逻辑:
- 已更改
ClassService.linq
->> 已更改 Visual Studio
中的项目;
- 已更改
ClassService. linq
< < - 已更改 Visual Studio
;) 中的项目
我可以执行全部或部分这些操作吗?
还是LINQPad
用于初步开发方案,然后手动将代码转入*.cs
文件?
正在使用
- LINQPad - 6.9.15x64;
- Visual Studio - 2019. 社区。
您无法以这种方式轻松共享源代码,因为 .linq 格式具有 XML header 和查询属性(类似于 Visual Studio 项目中的信息文件)。
但是,您可以通过从 LINQPad 引用您在 VS 中创建的 DLL 来共享 DLL。 LINQPad 将自动定位 .deps.json 文件(如果存在),并将项目的 NuGet 引用集成到查询中。如果将以下内容添加到项目中的源代码文件,则可以从 LINQPad 访问程序集的内部类型:
[assembly: InternalsVisibleTo("LINQPadQuery")]
要共享 DLL,请执行以下操作:
在 LINQPad 中按 F4,单击 'Add/Browse',选择您在 VS 中创建的 DLL(来自 bin\debug 文件夹)。该文件夹还将包含一个由 VS 创建的 .deps.json 文件,其中列出了项目的所有 NuGet 依赖项。 LINQPad 将自动读取此文件并将那些 NuGet 包添加到您的查询中。这里有一个 InternalsVisibleTo 示例:
danclarke.com/linqpad-tips-and-tricks-part2
相反的方法是可行的:LinqPad 6 现在允许 共享 *.cs
个文件。 而不是尝试在 Visual Studio 中打开 .linq 文件,您可以编写 class 并将其存储为 .cs 文件。
这有以下好处:
- Visual Studio 原生“理解”.cs 文件
- LinqPad 可以加载 .cs 文件,因此您可以与 Visual Studio
共享同一个文件
为此,在 LinqPad 中创建一个新的“C# 程序”。
假设你有一个文件KeyValueClass.cs
:
using System;
namespace myRedisDemo
{
/// <summary>
/// Class for key / value pair
/// </summary>
/// <example>{"Key":"name", "Value":"Matt"}</example>
public class KeyCalueClass
{
/// <summary>
/// The key
/// </summary>
public string Key { get; set; }
/// <summary>
/// The value
/// </summary>
public string Value { get; set; }
} // class
} // namespace
您想在 ReferenceCsFiles.linq
中使用它
目录C:\Users\Matt\source\repos\A. Demos\myRedisDemo\
如下:
#load "C:\Users\Matt\source\repos\A. Demos\myRedisDemo\KeyCalueClass.cs"
void Main()
{
var obj = new myRedisDemo.KeyCalueClass();
obj.Dump();
}
这将从您的 Visual Studio 项目编译 KeyValueClass.cs
文件并在 LinqPad 中 运行 它。
您甚至可以导入所有带有通配符的 .cs 文件,例如
#load "C:\Users\Matt\source\repos\A. Demos\myRedisDemo\*.cs"
所有子目录如下:
#load "C:\Users\Matt\source\repos\A. Demos\myRedisDemo\*.cs /s"
最后,如果你省略了像
这样的路径
#load "KeyCalueClass.cs"
那么它将引用 .linq 文件所在的同一路径。因此,您可以将支持的 *.linq 文件保存在与您的 classes 相同的目录中,并且只引用没有路径的 *.cs 文件。
问题。
如何在 Visual Studio 中使用 LINQPad 脚本?
说明。
我在 LINQPad
.
中创建了 Class Service.linq
class
如何在 Visual Studio
中使用 Class Service.linq
class?
也就是说,我可以实现以下场景吗?
场景:
- 将
ClassService.linq
导入到Visual Studio
中的项目; - 与
Visual Studio
中的项目同步ClassService.linq
;
(同步逻辑:
- 已更改
ClassService.linq
->> 已更改Visual Studio
中的项目; - 已更改
ClassService. linq
< < - 已更改Visual Studio
;) 中的项目
我可以执行全部或部分这些操作吗?
还是LINQPad
用于初步开发方案,然后手动将代码转入*.cs
文件?
正在使用
- LINQPad - 6.9.15x64;
- Visual Studio - 2019. 社区。
您无法以这种方式轻松共享源代码,因为 .linq 格式具有 XML header 和查询属性(类似于 Visual Studio 项目中的信息文件)。
但是,您可以通过从 LINQPad 引用您在 VS 中创建的 DLL 来共享 DLL。 LINQPad 将自动定位 .deps.json 文件(如果存在),并将项目的 NuGet 引用集成到查询中。如果将以下内容添加到项目中的源代码文件,则可以从 LINQPad 访问程序集的内部类型:
[assembly: InternalsVisibleTo("LINQPadQuery")]
要共享 DLL,请执行以下操作:
在 LINQPad 中按 F4,单击 'Add/Browse',选择您在 VS 中创建的 DLL(来自 bin\debug 文件夹)。该文件夹还将包含一个由 VS 创建的 .deps.json 文件,其中列出了项目的所有 NuGet 依赖项。 LINQPad 将自动读取此文件并将那些 NuGet 包添加到您的查询中。这里有一个 InternalsVisibleTo 示例:
danclarke.com/linqpad-tips-and-tricks-part2
相反的方法是可行的:LinqPad 6 现在允许 共享 *.cs
个文件。 而不是尝试在 Visual Studio 中打开 .linq 文件,您可以编写 class 并将其存储为 .cs 文件。
这有以下好处:
- Visual Studio 原生“理解”.cs 文件
- LinqPad 可以加载 .cs 文件,因此您可以与 Visual Studio 共享同一个文件
为此,在 LinqPad 中创建一个新的“C# 程序”。
假设你有一个文件KeyValueClass.cs
:
using System;
namespace myRedisDemo
{
/// <summary>
/// Class for key / value pair
/// </summary>
/// <example>{"Key":"name", "Value":"Matt"}</example>
public class KeyCalueClass
{
/// <summary>
/// The key
/// </summary>
public string Key { get; set; }
/// <summary>
/// The value
/// </summary>
public string Value { get; set; }
} // class
} // namespace
您想在 ReferenceCsFiles.linq
中使用它
目录C:\Users\Matt\source\repos\A. Demos\myRedisDemo\
如下:
#load "C:\Users\Matt\source\repos\A. Demos\myRedisDemo\KeyCalueClass.cs"
void Main()
{
var obj = new myRedisDemo.KeyCalueClass();
obj.Dump();
}
这将从您的 Visual Studio 项目编译 KeyValueClass.cs
文件并在 LinqPad 中 运行 它。
您甚至可以导入所有带有通配符的 .cs 文件,例如
#load "C:\Users\Matt\source\repos\A. Demos\myRedisDemo\*.cs"
所有子目录如下:
#load "C:\Users\Matt\source\repos\A. Demos\myRedisDemo\*.cs /s"
最后,如果你省略了像
这样的路径#load "KeyCalueClass.cs"
那么它将引用 .linq 文件所在的同一路径。因此,您可以将支持的 *.linq 文件保存在与您的 classes 相同的目录中,并且只引用没有路径的 *.cs 文件。