c# - Error "Failed to construct view 'View Name' with both injection and empty constructor" in the publication of the project -


(used wpf, catel, telerik ui)

hello, problem in next, when try compile project when program starts in places gets following error: "failed construct view 'userview' both injection , empty constructor".

at same time when run program in visual studio in debug mode or release program runs without errors.

what problem???

here methods call view, same, in second case, error takes off:

private command _showdashboardview;         public command showdashboardview         {                         {                 return _showdashboardview ?? (_showdashboardview = new command(() =>                 {                     _pleasewaitservice.show();                     currentviewmodel = new dashboardviewmodel();                     _pleasewaitservice.hide();                 }));             }         } private command _showuserview;         public command showuserview         {                         {                 return _showuserview ?? (_showuserview = new command(() =>                 {                     _pleasewaitservice.show();                     currentviewmodel = new userviewmodel();                     _pleasewaitservice.hide();                 }));             }         } 

userviewmodel:

public class userviewmodel : viewmodelbase     {         private readonly iuivisualizerservice _uivisualizerservice;         private readonly imessageservice _messageservice;         private readonly ipleasewaitservice _pleasewaitservice;          public olympentities context         {             { return getvalue<olympentities>(contextproperty); }             set { setvalue(contextproperty, value); }         }         public static readonly propertydata contextproperty = registerproperty("context", typeof(olympentities), null);          public userviewmodel()         {             context = new olympentities();             users = new observablecollection<user>(context.users.orderbydescending(u => u.id_user));              adduser = new taskcommand(onadduserexecuteasync);             edituser = new taskcommand(onedituserexecuteasync);             removeuser = new taskcommand(onremoveuserexecuteasync);              addticket = new taskcommand(onaddticketexecuteasync);             editticket = new taskcommand(oneditticketexecuteasync, oneditticketcanexecute);             removeticket = new taskcommand(onremoveticketexecuteasync, oneditticketcanexecute);              var dependencyresolver = this.getdependencyresolver();             _uivisualizerservice = dependencyresolver.resolve<iuivisualizerservice>();             _messageservice = dependencyresolver.resolve<imessageservice>();             _pleasewaitservice = dependencyresolver.resolve<ipleasewaitservice>();         }          public override string title { { return "customerviewmodel"; } } 

the designer trying invoke logic of constructor. use code @ beginning of vm ctor:

if (catelenvironment.isindesignmode) {     return; } 

free pro tip: use dependency injection instead of resolving services inside constructor:

public userviewmodel(iuivisualizerservice uivisualizerservice, imessageservice messageservice, ipleasewaitservice pleasewaitservice) {     argument.isnotnull(() => uivisualizerservice);     argument.isnotnull(() => messageservice);     argument.isnotnull(() => pleasewaitservice);      _uivisualizerservice = uivisualizerservice;     _messageservice = messageservice;     _pleasewaitservice = pleasewaitservice;      if (catelenvironment.isindesignmode)     {         return;     }      context = new olympentities();     users = new observablecollection<user>(context.users.orderbydescending(u => u.id_user));      adduser = new taskcommand(onadduserexecuteasync);     edituser = new taskcommand(onedituserexecuteasync);     removeuser = new taskcommand(onremoveuserexecuteasync);      addticket = new taskcommand(onaddticketexecuteasync);     editticket = new taskcommand(oneditticketexecuteasync, oneditticketcanexecute);     removeticket = new taskcommand(onremoveticketexecuteasync, oneditticketcanexecute); } 

Comments

Popular posts from this blog

javascript - jQuery: Add class depending on URL in the best way -

caching - How to check if a url path exists in the service worker cache -

Redirect to a HTTPS version using .htaccess -