私は多くのプロジェクトとソリューションを持っている:
Yupii.Games -> Class Library where settings, utilities are shared with projects Yupii.Games.Web -> Web app Yupii.Games.Api -> Web api
Gloabal JSONファイル(asp.netコア2.0)
私はデータベースとしてのMongoDBを使用していますが、私は多くのコレクションを持っているが、私がしたいですコレクション名の慣例として、
モンスター(実体)〜モンスターコレクション名。
私はGlobalSettings.jsonという名前Yupii.GamesでJSONファイルがあります:私はGlobalSettingsに到達するにはどうすればよい
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.Configure<MongoDbSettings>(options =>
{
options.ConnectionString = Configuration.GetSection("MongoConnection:ConnectionString").Value;
options.Database = Configuration.GetSection("MongoConnection:Database").Value;
)};
}
:私はのようなものを持っているYupii.Games.Apiで
"MongoDBCollections": {
"Collections": [
{ "Monster": "monsters" },
{ "User": "users" }
...
]}
を
services.Configure<GlobalSettings>(options =>
{
options.Collections = CollectionsConfiguration.GetSection("MongoDBItems:Collections").Get<Dictionary<string, string>>();
});
次にループ:.json - - > "MongoDBCollections">コレクションは、[]サービスのためにも持っています准コレクション名を取得する:
var collectionName = typeof(T).Name;
foreach (var collection in CollectionList)
{
if (collectionName == collection.Key)
return Database.GetCollection<T>(collection.Value);
}
return Database.GetCollection<T>(collectionName);
を私はYupii.Games.Web
で同じことを行うことができるようにしたい実は、私はすべてが別の方法で正常に動作するために作ることができていますが、コードと構造はひどいです。いずれかの身体がより良いとクリーンな方法PLZを示すことができる場合。
私はYupii.Games.Web方法の一つではUPDATE
...私はすべてが明らかであると思いますのVisual Studio 2017のasp.netコア2.0
を使用していますが、呼び出しを行うこの方法:
HttpResponseMessage response = client.GetAsync(RESTVersion + GetCollectionName() + e).Result;
とGetCollectionName():
public string GetCollectionName()
{
string collectionName = typeof(T).Name;
... // get the collection name by associating the typeof(T)
return name;
}
ちょっと不思議なことに、なぜあなたがアプリケーションで読んでいる 'appSetting.json'ではなく、GlobalSetting.jsonを使っているのですか?また、Webはあなたのスタートアッププロジェクトと仮定します。なぜなら、あなたの 'startup.cs'がウェブまたはapiにあるとしてファイルを置くのです。 – Jaya
したがって、MongoDBCollectionsをYupii.Games.Api appSettings.jsonに配置すると、ユピー。ゲーム。ウェブ? appSettings.json(WebとApi)の両方でMongoDBCollection json要素を繰り返す必要はありません。私はHttpClientと電話をかけるXamarinも持っています。 – yupii7
正確にそれを必要とするプロジェクトですか?私はそれがWebアプリの権利だと思いますか? - そのプロジェクトに配置し、startup.csにファイルを読み込んでコレクションをループすると、あなたのWebはapi – Jaya