标签: code-generation

Visual Studio 2008中的"无法解析符号"错误?

我已经开始研究以前开发人员留下的一些代码了,我遇到了一个奇怪的问题.代码是ASP.NET 2.0中的C#,我在Visual Studio 2008中使用ReSharper 4.1.

这段代码编译得很好并可以在我的Web应用程序中运行,但是ReSharper正在使用"无法解析符号'<name of class here>'" 这一消息进行操作.这不是世界末日,但我宁愿在我的代码文件中没有大量的红色错误.

一个示例行:

InvoiceItem invoiceItems = GetInvoiceItems(serviceLineItemID);

InvoiceItem是一个自动生成.cs代码隐藏的.xsd数据集.在过去,我使用xsd.exe为数据集创建.cs文件,并在我的项目中包含.cs,但在这种情况下不起作用.我很长一段时间都是.NET开发人员,但这是我第一次遇到这个问题.

有任何想法吗?

asp.net resharper code-generation dataset

5
推荐指数
1
解决办法
8197
查看次数

是时候在Eclipse中开发一个选项来修改Java文件源了

我正在评估开发Eclipse插件以修改某些Java文件的源代码的可能性.

Eclipse插件应该:

  1. 添加一个菜单选项或上下文菜单选项以启动修改过程.
  2. 添加键绑定
  3. 只有在Java文件上打开编辑器时才会以这种方式更改UI.
  4. 修改过程不会打开一个对话框,也可能是一个非常简单的对话框.
  5. 修改过程将遍历Java文件的AST并修改它.

考虑到我们没有使用Eclipse插件的经验,我们需要花时间阅读文档,您在开发该插件时估计了多少时间?

提前致谢.

eclipse code-generation eclipse-plugin

5
推荐指数
1
解决办法
985
查看次数

C#反射,改变方法的主体

是否可以在运行时更改方法体?

class Person
{
    public void DoSth()
    { Console.WriteLine("Hello!"); }
}
Run Code Online (Sandbox Code Playgroud)

我想有一个简单的输入字段(如文本框),我可以在运行时编写方法体源代码.

文本框可能包含以下数据:

for (int i = 0; i < 5; i++)
     Console.WriteLine(i);
Run Code Online (Sandbox Code Playgroud)

应该在什么时候进行

new Person().DoSth()
Run Code Online (Sandbox Code Playgroud)

叫做.

在C#(使用Reflection)中是否可以(或如何)?
感谢您的帮助.

编辑:
如果上述情况不可能,是否可以在运行时创建一个新方法并调用它?

c# code-generation

5
推荐指数
1
解决办法
5236
查看次数

Atom适用于通用C代码生成吗?

你能用Atom在Haskell中编写C语言吗?这是可能的,那会有意义吗?

embedded haskell code-generation

5
推荐指数
1
解决办法
290
查看次数

在编译阶段后通过Maven插件生成新的源代码

我有一个Maven项目,我需要在其中执行两个代码生成步骤.一个生成一些Java类型,然后第二个依赖于这些Java类型来生成更多代码.有没有办法在我的构建过程中发生这两个步骤?

目前我的步骤是:

  1. 执行第一个代码生成插件(期间generate-sources)
  2. 添加生成类型的目录以构建路径
  3. 执行第二代码生成插件(期间compile)

但是我的问题是第二代码生成插件生成的任何内容都不会被编译(因为编译阶段已经完成).如果我将第二个代码生成插件附加到早期阶段,则会失败,因为它需要第一个代码生成插件中的类出现在类路径中.

我知道我可以把它分成两个模块,一个依赖于另一个,但我想知道这是否可以在一个pom中实现.看起来需要一种在正常编译阶段完成后再次调用编译的方法.

有任何想法吗?

java code-generation pom.xml maven

5
推荐指数
1
解决办法
4750
查看次数

如何为生成的C++转义字符串?

我正在编写基于数据生成C++代码的python脚本.

我有python变量string,其中包含一个字符串,可以由字符"或换行符组成.

为代码生成转义此字符串的最佳方法是什么?

python code-generation escaping

5
推荐指数
1
解决办法
1906
查看次数

-pie到底做什么?

我file /bin/ls并得到输出:

/ bin / ls:ELF 64位LSB共享库,x86-64,版本1(SYSV),动态链接,解释器/lib64/ld-linux-x86-64.so.2,用于GNU / Linux 2.6.32,剥离

我发现原因是我的gentoo正在使用-pie编译所有内容。

如果我将-nopie传递给gcc,我将得到正确的答案:

a.out:ELF 64位LSB可执行文件,x86-64,版本1(SYSV),动态链接,解释器/lib64/ld-linux-x86-64.so.2,用于GNU / Linux 2.6.32,未剥离

另外,我在构建.so时也发现了一些东西,它也是可执行文件。它使用-pie使DSO可执行。

在gcc的手册页中,它简要描述了:

-pie
在支持它的目标上生成与位置无关的可执行文件。

所以我想知道-pie到底在做什么?它如何使我的可执行文件被识别为共享对象?

c linux linker gcc code-generation

5
推荐指数
1
解决办法
2219
查看次数

Java - 如何克服自动生成的代码中的最大方法大小

我有一个不寻常的要求:我的应用程序从一个非常长的脚本(用动态类型语言编写)自动生成Java代码.脚本太长了,我达到了JVM的最大方法大小65k.

该脚本仅包含关于基本类型的简单指令(除了数学类型之外不调用其他函数).它可能看起来像:

...
a = b * c + sin(d)
...
if a>10 then
   e = a * 2
else
   e = a * abs(b)
end
...
Run Code Online (Sandbox Code Playgroud)

...转换为:

...
double a = b * c + Math.sin(d);
...
double e;
if(a>10){
   e = a * 2;
}else{
   e = a * Math.abs(b);
}
...
Run Code Online (Sandbox Code Playgroud)


我克服方法大小限制的第一个想法如下:

  • 将所有局部变量转换为字段
  • 在单独的方法中,每100行(如果需要if或else块,则需要更长的时间)拆分代码.

就像是:

class AutoGenerated {

   double a,b,c,d,e,....;

   void run1(){
      ...
      a = b * c + sin(d);
      ...
      run2();
   }

   void run2(){ …
Run Code Online (Sandbox Code Playgroud)

java jvm code-generation auto-generate

5
推荐指数
1
解决办法
2149
查看次数

如何在未安装Visual Studio的PC上从VS 2015运行TextTransform.exe?

我TextTransform.exe从安装了VS 2015 Update 3的PC从本地复制C:\Program Files (x86)\Common Files\Microsoft Shared\TextTemplating\14.0\TextTransform.exe到未安装VS 2015的PC。

TextTransform.exe 被称为构建脚本的一部分。

当我运行它时,出现以下错误:
Error: Exception has been thrown by the target of an invocation.

我阅读了《构建过程中的代码生成》一文。
我试图复制“配置计算机”一节中描述的所有dll-s。
但是我没有$(ProgramFiles)\MSBuild\Microsoft\VisualStudio\v*.0\TextTemplating在装有VS 2015的PC上找到该文件夹。
我将本文所述的其他两个文件夹中的文件复制到了TextTransform.exe未安装VS 2015的PC上的文件夹。

运行后TextTransform.exe,错误仍然发生。

该错误应如何解决?我要如何TextTransform.exe跑步?

更新

我TextTransform.exe从MSBuild脚本调用。因此,如果可以在MSBuild中实现执行文本转换功能的任何方法,尽管需要更新构建脚本,但对我来说是可以接受的。
我想这样的解决方案可能存在,因为有一些示例在MSBuild执行转换而无需直接调用的情况下TextTransform.exe,例如上述文章。

msbuild dependencies code-generation runtime-error visual-studio-2015

5
推荐指数
1
解决办法
921
查看次数

以编程方式将源代码添加到Xcode目标

我正在使用protobuf从protofiles生成swift类(为此我编写了一个脚本)。现在,我需要将所有生成的文件添加到Xcode项目中的target中。

如何以编程方式执行此操作?也许是“构建阶段”中的脚本或macOS中的其他某种动作(Automator?)?

xcode code-generation target ios swift

5
推荐指数
1
解决办法
1150
查看次数