[castle][JIRA] Created: (CONTRIB-55) CodeGenerator - Unable to resolve an entity

1 view
Skip to first unread message

Jonathan Lamont (JIRA)

unread,
Sep 13, 2007, 4:48:17 PM9/13/07
to castle-pro...@googlegroups.com
CodeGenerator - Unable to resolve an entity
-------------------------------------------

Key: CONTRIB-55
URL: http://support.castleproject.org//browse/CONTRIB-55
Project: Contrib
Issue Type: Bug
Components: Generator
Environment: n/a
Reporter: Jonathan Lamont


I'm using the codeGenerator in my monorail project. It works fine if all my controller's actions are using only primitive parameters. If an action has an entity as a parameter, for example ( public void actionTest(User user) ) I get this error :

The "GenerateMonoRailSiteTreeTask" task failed unexpectedly.
System.TypeLoadException: Unable to resolve: Usager

Server stack trace:
at Castle.Tools.CodeGenerator.Services.TypeResolver.Resolve(String typeName, Boolean throwOnFail)
at Castle.Tools.CodeGenerator.Services.TypeResolver.ResolveTypeReference(TypeReference reference)
at Castle.Tools.CodeGenerator.Services.TypeResolver.Resolve(TypeReference reference)
at Castle.Tools.CodeGenerator.Services.ControllerVisitor.VisitMethodDeclaration(MethodDeclaration methodDeclaration, Object data)
at ICSharpCode.NRefactory.Ast.MethodDeclaration.AcceptVisitor(IAstVisitor visitor, Object data)
at ICSharpCode.NRefactory.Ast.AbstractNode.AcceptChildren(IAstVisitor visitor, Object data)
at ICSharpCode.NRefactory.Visitors.AbstractAstVisitor.VisitTypeDeclaration(TypeDeclaration typeDeclaration, Object data)
at Castle.Tools.CodeGenerator.Services.ControllerVisitor.VisitTypeDeclaration(TypeDeclaration typeDeclaration, Object data)
at ICSharpCode.NRefactory.Ast.TypeDeclaration.AcceptVisitor(IAstVisitor visitor, Object data)
at ICSharpCode.NRefactory.Ast.AbstractNode.AcceptChildren(IAstVisitor visitor, Object data)
at ICSharpCode.NRefactory.Visitors.AbstractAstVisitor.VisitNamespaceDeclaration(NamespaceDeclaration namespaceDeclaration, Object data)
at Castle.Tools.CodeGenerator.Services.TypeResolvingVisitor.VisitNamespaceDeclaration(NamespaceDeclaration namespaceDeclaration, Object data)
at ICSharpCode.NRefactory.Ast.NamespaceDeclaration.AcceptVisitor(IAstVisitor visitor, Object data)
at ICSharpCode.NRefactory.Ast.AbstractNode.AcceptChildren(IAstVisitor visitor, Object data)
at ICSharpCode.NRefactory.Visitors.AbstractAstVisitor.VisitCompilationUnit(CompilationUnit compilationUnit, Object data)
at Castle.Tools.CodeGenerator.MsBuild.GenerateMonoRailSiteTreeTask.Execute()
at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(RuntimeMethodHandle md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)

Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at Microsoft.Build.Framework.ITask.Execute()
at Microsoft.Build.BuildEngine.TaskEngine.ExecuteTask(ExecutionMode howToExecuteTask, Hashtable projectItemsAvailableToTask, BuildPropertyGroup projectPropertiesAvailableToTask, Boolean& taskClassWasFound)

/************************************************************************/

Is there a way to define our references? Or an other way to fix that?

--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://support.castleproject.org//secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira


Lee Henson

unread,
Sep 14, 2007, 6:06:22 AM9/14/07
to Castle Project Development List
I've got non-primitive objects in my actions without any exceptions
being thrown by the code generator. I think you may be missing the
targets file. chriso posted some stuff in this thread about that:

http://groups.google.com/group/castle-project-devel/browse_thread/thread/1f447e80d5e3bc74/afc6f470e7e2eace?lnk=gst&q=code+generator+targets&rnum=1#afc6f470e7e2eace

I have a Castle.Tools.CodeGenerator folder in Program Files\MSBuild
which contains:

Castle.Tools.CodeGenerator.dll
Castle.Tools.CodeGenerator.targets
ICSharpCode.NRefactory.dll

which is created when I build the code generator solution. Here's what
the targets file contains:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<CodeGeneratorAssembly Condition="'$(CodeGeneratorAssembly)' ==
''">$(MSBuildExtensionsPath)\Castle.Tools.CodeGenerator
\Castle.Tools.CodeGenerator.dll</CodeGeneratorAssembly>
<SiteMapFileName Condition="'$(SiteMapFileName)' ==
''">SiteMap.generated.cs</SiteMapFileName>
<SiteMapNamespace Condition="'$(SiteMapNamespace)' == ''">$
(RootNamespace).SiteMap</SiteMapNamespace>
<BuildDependsOn>
GenerateMonoRailSiteTree;
$(BuildDependsOn)
</BuildDependsOn>
</PropertyGroup>

<ItemGroup Condition="'@(ControllerSources)' == ''">
<ControllerSources Include="$(MSBuildProjectDirectory)\Controllers
\**\*.cs">
<InProject>false</InProject>
</ControllerSources>
</ItemGroup>

<ItemGroup Condition="'@(ViewSources)' == ''">
<ViewSources Include="$(MSBuildProjectDirectory)\Views\**\*.aspx">
<InProject>false</InProject>
</ViewSources>
<ViewSources Include="$(MSBuildProjectDirectory)\Views\**
\*.brail">
<InProject>false</InProject>
</ViewSources>
<ViewSources Include="$(MSBuildProjectDirectory)\Views\**
\*.brailjs">
<InProject>false</InProject>
</ViewSources>
<ViewSources Include="$(MSBuildProjectDirectory)\Views\**\*.vm">
<InProject>false</InProject>
</ViewSources>
<ViewSources Include="$(MSBuildProjectDirectory)\Views\**\*.njs">
<InProject>false</InProject>
</ViewSources>
</ItemGroup>

<UsingTask
TaskName="Castle.Tools.CodeGenerator.MsBuild.GenerateMonoRailSiteTreeTask"
AssemblyFile="$(CodeGeneratorAssembly)"/>
<Target Name="GenerateMonoRailSiteTree"
DependsOnTargets="ResolveReferences">
<Message Text="$(OutputPath) ---------" />
<Message Text="MSBuild Project DIrectory: $
(CodeGeneratorAssembly)" />
<GenerateMonoRailSiteTreeTask OutputFile="$(SiteMapFileName)"
Namespace="$(SiteMapNamespace)"

ControllerSources="@(ControllerSources)"
ViewSources="@(ViewSources)"
Sources="@(Compile)"

AssemblyReferences="@(ReferencePath);@(_ResolvedProjectREferencePaths)">

</GenerateMonoRailSiteTreeTask>

</Target>
</Project>

On 13 Sep, 21:48, "Jonathan Lamont (JIRA)"

chriso

unread,
Sep 14, 2007, 4:30:24 PM9/14/07
to Castle Project Development List
Also, watch out if you're using resharper 3.0
If your controller looks like:
namespace MyApp.Controllers
using MyApp.Models;

public partial class MyController : SmartDispatcherController {
public void Show(Model1 m) {}
.....


When you 'optimize usings' R# 3.0 will change that MyApp.Models to
Models and then parsing will fail to find the type, if you change it
back to MyApp.Models it will work successfully.

On Sep 14, 5:06 am, Lee Henson <lee.m.hen...@gmail.com> wrote:
> I've got non-primitive objects in my actions without any exceptions
> being thrown by the code generator. I think you may be missing the
> targets file. chriso posted some stuff in this thread about that:
>

> http://groups.google.com/group/castle-project-devel/browse_thread/thr...

hamilton verissimo (JIRA)

unread,
Sep 14, 2007, 4:31:17 PM9/14/07
to castle-pro...@googlegroups.com

jlamont

unread,
Sep 17, 2007, 11:58:10 AM9/17/07
to Castle Project Development List
That was the problem ( R# 3.0 ).. Thanks a lot!
Reply all
Reply to author
Forward
0 new messages