标签: code-generation

如何将我的属性添加到代码生成的Linq2Sql类属性?

我想为Linq 2 Sql类属性添加属性.例如,此列可以在UI中使用,也可以在UI中自读,目前为止.

我考虑过使用模板,有谁知道如何使用它?还是别的什么?

一般来说,您是否会使用代码生成的类来解决这个问题?

c# attributes code-generation linq-to-sql

22
推荐指数
2
解决办法
7303
查看次数

从XSD生成PHP类?

是否存在JavaBeans或JAXB for PHP的世界类似物?是否可以从XML模式生成PHP类?

将API作为XSD架构发布是很常见的做法.Java和C#人可以通过直接从XSD生成类来获得优势.PHP有相同的工具吗?

php xml schema xsd code-generation

22
推荐指数
2
解决办法
4万
查看次数

在运行时创建T4模板(构建时)?

我们正在构建一个内部应用程序,需要生成HTML文件以上传到eBay列表中.我们希望使用模板引擎根据我们预定义的数据库和静态字段生成HTML文件.模板还需要具有逻辑功能(if-then,foreach等).

我们已经看过T4并且它看起来很完美,但我们没有看到它是否具有在运行时使用的功能,因此用户可以创建T4模板,然后应用程序可以"编译"它并生成最终的HTML文件.这有可能,怎么样?

如果没有,是否还有其他我们应该关注的具有所有这些功能的框架?

.net c# t4 templates code-generation

22
推荐指数
3
解决办法
1万
查看次数

Project Lombok是否适合大型Java项目?

是否有人使用Project Lombok进行大规模生产系统?它如何影响您的编译过程(即它是否进行双程编译,减慢速度,使其更脆弱)?

java code-generation boilerplate lombok

22
推荐指数
2
解决办法
4345
查看次数

如何在LLVM IR中有效地实现闭包?

我开始在我的语言中添加闭包(lambdas),使用LLVM作为后端.我已经将它们实现为可以始终内联的简单情况,即闭包定义本身的代码不需要生成,因为它在内联使用时也是如此.

但是如果闭包并不总是内联的话,如何为闭包生成代码(例如,它被传递给另一个没有内联的函数).优选地,呼叫站点不应该关心它们是否被传递给常规功能或闭包并且将它们称为正常功能.

我可以使用合成名称生成一个函数,但它必须将引用环境作为额外参数,并且该函数不能仅传递给另一个不知道所需额外参数的函数.

我想到了一种可能的解决方案,使用LLVM的trampoline内在函数,它从一个函数"切除"一个参数,返回一个指向一个较少参数的trampoline函数的指针.在这种情况下,如果为闭包生成的函数将引用环境作为第一个参数,我可以删除它并返回一个函数,该函数获取与闭包实际声明的参数完全相同的参数.这听起来有用吗?高效?还有更好的解决方案吗?

代码示例:

def applyFunctionTo(value: Int, f: (Int) -> Int) = f(value)

def main() = {
  val m := 4;
  val n := 5;
  val lambda := { (x: Int) => x + m + n };
  applyFunctionTo(3, lambda)
}
Run Code Online (Sandbox Code Playgroud)

现在,让我们假设这不会被内联def main() = 3 + 4 + 5,并且applyFunctionTo可能会单独编译,我们无法更改那里的调用站点.通过trampolining,我想生成的代码将是这样的(用伪代码表示,*表示指针):

def main$lambda$1(env: {m: Int, n: Int}*, x: Int) = x + env.m + env.n
def main() = {
  m = 4
  n = 5
  env* = …
Run Code Online (Sandbox Code Playgroud)

compiler-construction code-generation language-design llvm

22
推荐指数
1
解决办法
3528
查看次数

生成在Eclipse中返回self的setter

我想要我的定制者,以便我可以将它们链接起来:

myPojo.setX(x).setY(y);
Run Code Online (Sandbox Code Playgroud)

通常我使用Eclipse生成setter但不幸的是code template,setter允许我只更改setter的主体,而不是签名.

什么是最简单的方法来完成上述?除了搜索和替换+手动编辑?:)

java eclipse code-generation pojo

22
推荐指数
3
解决办法
5067
查看次数

使用Roslyn解析/转换/生成代码:我的目标是太高还是太低?

(我要做的是通过从vs生成的设置文件生成接口和包装类来解决Application.Settings/MVVM问题.)

我想做的是:

  • 从文件中解析类声明
  • 仅基于类的(非静态)属性生成接口声明
  • 生成一个实现此接口的包装类,在构造函数中获取原始类的实例,并将所有属性"管道"到实例.
  • 生成另一个直接实现接口的类.

我的问题是双重的:

  • 我吠叫错了树吗?我会更好地使用Code-Dom,T4,Regex(!)来实现这个目标,还是部分原因?(我不介意一些额外的工作,因为这主要是一种学习经历.)
  • 如果罗斯林是要走的路,我应该关注哪一点?我有点天真地希望有一些方法可以走树并吐出我想要的东西,但是我无法理解是否/如何使用SyntaxRewriter来实现它,或者是否要使用流畅的结构,多次查询源我需要的位.

如果你想评论MVVM方面,你可以,但这不是问题的主旨:)

c# code-generation roslyn

22
推荐指数
4
解决办法
9424
查看次数

是否可以为equals()和hashCode()更改IntelliJ的代码生成模板

是否有可能改变代码生成模板equals()hashCode()

我希望生成的代码将Java 7 Objects类用于这些方法.

java code-generation intellij-idea

22
推荐指数
2
解决办法
1万
查看次数

如何在编码的编译代码中调试/中断

我有一个应用程序动态加载c#源文件并作为插件运行它们.当我在调试模式下运行主应用程序时,是否可以调试到动态程序集?显然设置断点是有问题的,因为源不是原始项目的一部分,但我是否应该介入或打破代码的异常?

有没有办法让编码器生成这个或什么的PDB?

这是我用于动态compliation的代码.

CSharpCodeProvider codeProvider = new CSharpCodeProvider(new Dictionary<string, string>() { { "CompilerVersion", "v3.5" } });
//codeProvider.
ICodeCompiler icc = codeProvider.CreateCompiler();

CompilerParameters parameters = new CompilerParameters();
parameters.GenerateExecutable = false;
parameters.GenerateInMemory = true;
parameters.CompilerOptions = string.Format("/lib:\"{0}\"", Application.StartupPath);
parameters.ReferencedAssemblies.Add("System.dll");
parameters.ReferencedAssemblies.Add("System.Core.dll");


CompilerResults results = icc.CompileAssemblyFromSource(parameters, Source);
DLL.CreateInstance(t.FullName, false, BindingFlags.Default, null, new object[] { engine }, null, null);
Run Code Online (Sandbox Code Playgroud)

.net c# debugging code-generation

21
推荐指数
2
解决办法
9294
查看次数

如何使用RoboPOJOGenerator从Android Studio中的Json自动生成模型类

我将分享一种从Android中的Json生成类的方法.

从JSON生成Java和Kotlin POJO文件:GSON,AutoValue,Logan Square,FastJSON,Jackson,Moshi,空注释模板.支持:原始类型,多个内部JSONArrays.

这是一个演示:

在此输入图像描述

您可以从以下选项下载: "首选项" - >"插件" - >"浏览存储库" - >"RoboPOJOGenerator"在此输入图像描述

以及如何使用:

在此输入图像描述

然后你将json粘贴到弹出窗口并选择解析器类型:

在此输入图像描述

然后点击生成,它将为您生成json的gen类!

在此输入图像描述

我希望它可以帮助你节省很多时间!

java android json code-generation

21
推荐指数
0
解决办法
4937
查看次数