我需要创建以下静态方法。这需要在特定文件夹(App_Code或Models)中,还是应该为此创建一个新文件夹?我应该遵循一个特定的惯例吗?
public static DbGeography CreatePoint(double lat, double lon, int srid = 4326)
{
string wkt = String.Format("POINT({0} {1})", lon, lat);
return DbGeography.PointFromText(wkt, srid);
}
另外,我是否需要在我的控制器中指定一个新的“使用”来调用它?
答案 0 :(得分:2)
实际上没有任何硬性规定。
在您的情况下,代码似乎是一种帮助方法。在一个小型的单一项目应用程序中,我倾向于创建一个帮助者'在那里创建一个静态类,包含这样的方法。
您对DbGeography类中的PointFromText方法有依赖性,因此还需要移动它。
事实上,PointFromText听起来像执行与CreatePoint相同的任务,但采取不同的输入。 它会使CreatePoint <{3>}的create an overload变得更清晰
DbGeography CreatePoint(string wkt, int srid);
DbGeography CreatePoint(double lat, double lon, int srid = 4326);
现在可以使用纬度/经度或适当的字符串/ srid调用CreatePoint。
using directive取决于静态方法所在的命名空间:
namespace Foo
{
public static class HelperMethods
{
public static DbGeography CreatePoint(double lat, double lon, int srid = 4326)
{
string wkt = String.Format("POINT({0} {1})", lon, lat);
return DbGeography.PointFromText(wkt, srid);
}
}
}
通过上面的示例,在您的调用代码中,您将有几个选项。你可以
1)直接调用方法:
Foo.HelperMethods.CreatePoint(51.5, 0.1);
2)使用using指令导入名称空间,并调用方法:
using Foo;
...
HelperMethods.CreatePoint(51.5, 0.1);
3)导入静态类并直接访问方法:
using static Foo.HelperMethods;
...
CreatePoint(51.5, 0.1);
根据您的偏好,您采取了哪种方法,我可能会选择第二种选择,只是为了提高可读性。