Rider: set namespace autofill as absolute namespace instead relative - c#

When I'm using new class the Rider import the file by using the relative namespace, there is an option to set the Rider to use the absolute namespace instead?
for example, instead
using Collections.Generic;
autofill
using System.Collections.Generic;

If I understand you correctly - you need to check this official page.
In project settings you can set root namespace for all your project, and all your classes will import this namespace by pattern like:
{root namespace}.{local namespace (such as Contracts)}.{subnamespaces and etc.}
For example:
If you have Project called as Castle
and interface in local namespace IContract, and you want to use Logger namespace you will see smth like this
using Castle.Logger;
namespace Castle.Contracts;
public interface IContract {}

Related

Cant recognize class in webform project

In my web form project I opened a folder called App_Code inside that folder I have class named Test123, but when I try to create instance inside WebForm1.aspx.cs it doesn't recognize that type
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace StephanProject_2.App_Code
{
public class Test123
{
}
}
My project structure:
I tried to add using StephanProject_2.App_Code;
What's the problem?
The class you are calling does not seem to be in the same namespace as the Webform1 class
if its from another namespace use.
StephanProject_2.App_Code.Test123 t = new StephanProject_2.App_Code.Test123()
Or alternatively in the top say
using StephanProject_2.App_Code;
When i try to same as your project then it works my code
You can see Here

the name properties does not exist in the current context?

I'm getting an error that says the name properties does not exist in the current context? The rest of the code seems fine, apart from this error, I'm aware there are similar questions however I'm struggling to apply the solutions in my own problem.
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
namespace transportservices
public class Service1 : transport
{
public int insertData(string shop, string car, string train)
{
using (SqlConnection conn = new SqlConnection(Properties.Settings.Default.SQL_String))
You don't have SQL_String property on your project. To add
Right click your project
Click on Properties
Go to Resources tab
Select Resource type string
In the grid Add SQL_String as Name of your resource name and provide value.
Your project namespace and class consuming that resource should have same namespace else you have to import that namespace in class.
I fixed this by adding a new dummy setting as follow:
then clicking the Save button. All errors saying "the name 'properties' does not exist in the current context" disappeared.

namespace not found in xaml, but can be used in C# code

I have a WPF Project Home,it will reference a library project which defines namespace 'LibraryProjectExample', I want to use it in the Home Project,the namespace can not be found:
xmlns:view="clr-namespace:LibraryProjectExample"
But when I use using namespace LibraryProjectExample in C# code,I can use it normally.
I have checked that the LibraryProject has been referenced by the Home Project, I don't know why i can't use the namespace in xaml.Anyone can tell me,thanks!
You have to use as below in you Xaml page.
xmlns:object="clr-namespace:**namespace**;assembly=*assembly*"
here namespace is your packagename.classname and assembly is your packagename
For Example, xmlns:col="clr-namespace:System.Collections;assembly=mscorlib"
Thank You.
It looks like you're not adding the assembly to your xaml reference. Look in your LibraryProjectExample project and find it's package name, then you can append it to your namespace declarationlike so
xmlns:view="clr-namespace:LibraryProjectExample;assembly=YOUR_PACKAGE_NAME"
Besides the namespace you should also specify the name of the library project/assembly where the namespace is defined:
xmlns:view="clr-namespace:LibraryProjectExample;assembly=LibraryProject"
You need to change "LibraryProject" in the above sample markup to the actual name of the referenced project where the "LibraryProjectExample" namespace is defined.

The type or namespace name does not exist in the namespace (are you missing an assembly reference?)

I know that this question has been already asked, but I cannot find anything that can help solve my problem.
I want to connect my aspx page (Retete.aspx) to a Microsoft SQL database. I'm getting this error on Retete.aspx.cs:
Error 1 The type or namespace name 'GlobalClass' does not exist in the namespace 'ProiectSera' (are you missing an assembly reference?)
The error points to this line of code:
ProiectSera.GlobalClass.Update(ValRefTempSol.Text, ValRefTempAer.Text);
Where ProiectSera is the project name, GlobalClass is the file where I make the operation on the db.
My using statements are:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ProiectSera;
The Target Framework is set to .net-4.5.
What should I do to solve this error?
Update
My GlobalClass.cs is:
using System;
using System.Data;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using System.IO;
using ProiectSera;
using System.Data.Services;
namespace ProiectSera.App_Code
{
public static class GlobalClass
{
static public void Update(string _param1, string _param2)
{//function to update}
}
}
App_Code is a folder where GlobalClass.cs is. I tried and
ProiectSera.App_Code.GlobalClass.Update(ValRefTempSol.Text, ValRefTempAer.Text); //
but I had the same error. And I put the GlobalClass.cs in the project's root. I also removed the .App_Code from namespace ProiectSera.App_Code
UPDATE1
My Retete.aspx.cs is
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ProiectSera;
using ProiectSera.App_Code;
namespace ProiectSera
{
public partial class Retete : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnSave_Click(object sender, EventArgs e)
{
string intValRefTempSol;
string intValRefTempAer;
// intValRefTempSol = ValRefTempSol.Text;
// intValRefTempAer = ValRefTempAer.Text;
// ProiectSera.App_Code.GlobalClass.Update(ValRefTempSol.Text, ValRefTempAer.Text);
GlobalClass.Update(ValRefTempSol.Text, ValRefTempAer.Text);
}
}
}
Your GlobalClass is in the namespace ProiectSera.App_Code.
So the class name is ProiectSera.App_Code.GlobalClass
Make sure you don't have a ProiectSera class in the ProiectSera namespace also, otherwise if declaring using ProiectSera on top, it'll try to use it (as a general rule, don't name any class the same as your namespace).
If that still doesn't work, you may want to try using the global namespace:
global::ProiectSera.GlobalClass.Update(ValRefTempSol.Text, ValRefTempAer.Text);
and see if that works: if it doesn't, and GlobalClass is in the same project, then there's something else you haven't shown us
Update
The only other thing that comes to mind, if you are positive that both files are on the same project/assembly, is that GlobalClass.cs is not being actually compiled. Make sure the Build Action is set to Compile (you can see the build action right clicking on the GlobalClass.cs in the solution explorer and selecting Properties).
If you are using VS.NET:
Right click on the References folder on your project.
Select Add Reference.
Select the .NET tab (or select the Browse button if it is not a .NET Framework assembly).
Double-click the assembly containing the namespace in the error message.
Press the OK button.
Ensure the following...
That you have a project reference to ProiectSera from your web application, if it's in a separate library. If GlobalClass is in the web application project itself, you won't require this, but if GlobalClass is defined in a separate library in the same solution or elsewhere, then you're going to need to add a reference to that external library in your web application.
Ensure that ProiectSera should not be ProjectSera (if it's a typo).
Ensure that you have your ProiectSera using statement in place at the top (using ProiectSera;). Assuming that this is the correct namespace. Check the namespace of your GlobalClass class and use that using accordingly in the class that wishes to use its functionality.
Then, simply call this in your code, assuming that Update is a static method of GlobalClass.
GlobalClass.Update(ValRefTempSol.Text, ValRefTempAer.Text);
EDIT: given that you've now posted your GlobalClass code, you can see that the namespace for this class is ProiectSera.App_Code;. So you need to have that as your using statement in the other class using ProiectSera.App_Code;. And then call it via simply GlobalClass.Update, as mentioned above.
If you don't understand how namespacing works in C#, then I recommend you check this out (https://msdn.microsoft.com/en-us/library/dfb3cx8s.aspx).

Less specific using statements conflicting with more specific ones

Can anyone explain this behavior and what the solution is?
I installed Ninject.MVC3 via nuget, this creates a file in the App_Start folder called NinjectWebCommon.cs with the namespace like this:
namespace MvcApplication1.App_Start {
...
using Ninject;
using Ninject.Web.Common;
...
}
Now, I want to create an NinjectModule and am having some issues with the Ninject namespace being recognized.
namespace MvcApplication1.Ninject.Modules {
using Ninject.Modules
...
}
As soon as I add the using statement in the module, NinjectWebCommon.cs can no longer compile. If I place the using outside the namespace, it still won't compile.
If, however, i change the namespace for my module to MvcApplication1.Foo, then it works fine either way.
Why would naming this MvcApplication1.Ninject.Modules (or even just MvcApplication1.Ninject) cause NinjectWebCommon.cs to no longer find it's references? I thought the purpose of namespaces was to prevent this sort of thing?
Using statements within a namespace search in the child namespace of the current namespace and all its ancestors before looking at the global name space. E.g. If you have a namespace MvcApplication1.A you can write
using A
Instead of
using MvcApplication1.A
Because of this, your example is interpreted by the compiler as
namespace MvcApplication1.Ninject.Modules {
using MvcApplication1.Ninject.Modules
    ...
}
You can force that the compiler looks only in the global namespace like this:
namespace MvcApplication1.Ninject.Modules {
using global::Ninject.Modules
    ...
}

Categories

Resources