雷諾計畫為中國品牌生產電動車

雷諾汽車 (Renault) 行政總裁戈恩 (Carlos Ghosn) 表示,公司計劃在中國生產風朗 (Fluence) 電動車,若得到中國當局批准,將準備好為中國品牌生產此款電動車。   戈恩在法國西部城市南特 (Nantes) 的一個試駕活動上表示,目前正與中國當局討論這個提案。雷諾未有說明將為哪個品牌生產電動車。   雷諾及合作夥伴東風汽車已取得中國當局許可,旗下 13 億美元的合資企業可以開始投產,在中國組裝雷諾汽車。

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

新北清潔公司,居家、辦公、裝潢細清專業服務

※別再煩惱如何寫文案,掌握八大原則!

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※超省錢租車方案

※教你寫出一流的銷售文案?

颱風釀河川潰堤 日專家籲打破堤防神話首重離災

摘錄自2019年10月14日中央社報導

日本經濟新聞報導,哈吉貝颱風帶來破紀錄雨量,造成全日本總計超過140條河川氾濫,多處河川潰堤或氾濫,其中一條是位於長野市的千曲川,堤防大約有長達70公尺潰決,讓大水淹進民宅及北陸新幹線機廠,損失慘重。

像哈吉貝這樣會造成重大災害的巨大颱風,未來可能經常性出現,專精河川工學的岡山大學教授前野詩朗呼籲,要把全日本的堤防整建到完全不會潰堤,從財政面來看不切實際,應修正有堅固的堤防應該就能預防水患這樣的「堤防神話」,最重要的是徹底讓民眾有在豪雨來臨時須及早避難這樣的防災意識。

由於堤防潰決導致水災的情況在日本各地相繼發生,東京都江戶川區約有7成地區是低於滿潮水面的「海拔零公尺地帶」,區公所5月時製作災害預測圖呼籲區民一旦發生水患,必須離家避難,並在哈吉貝襲日時的12日上午馬上發出避難勸告。

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※幫你省時又省力,新北清潔一流服務好口碑

※回頭車貨運收費標準

.NET Core請求控制器Action方法正確匹配,但為何404?

前言

有些時候我們會發現方法名稱都正確匹配,但就是找不到對應請求接口,所以本文我們來深入了解下何時會出現接口請求404的情況。

匹配控制器Action方法(404)

首先我們創建一個web api應用程序,我們給出如下示例控制器代碼

[ApiController]
[Route("[controller]/[action]")]
public class WeatherController : ControllerBase
{
    [HttpGet]
    string Get()
    {
        return "Hello World";
    }
}

 

當我們進行如上請求時會發現接口請求不到,這是為何呢?細心的你應該可能發現了,對於請求方法是私有,而不是公共的,當我們加上public就可以請求到了接口

[HttpGet("get")]
public string Get()
{
    return "Hello World";
}

匹配控制器Action方法本質

經過如上示例,那麼對於Action方法的到底要滿足怎樣的定義才能夠不至於請求不到呢?接下來我們看看源碼怎麼講。我們找到DefaultApplicationModelProvider類,在此類中有一個OnProvidersExecuting方法用來構建控制器和Action方法模型,當我們構建完畢所有滿足條件的控制器模型后,緊接着勢必會遍歷控制器模型去獲取對應控制器模型下的Action方法,這裏只截取獲取Action方法片段,源碼如下:

foreach (var controllerType in context.ControllerTypes)
{    
    //獲取控制器模型下的Action方法
    foreach (var methodInfo in controllerType.AsType().GetMethods())
    {
        var actionModel = CreateActionModel(controllerType, methodInfo);
        if (actionModel == null)
        {
            continue;
        }

        actionModel.Controller = controllerModel;
        controllerModel.Actions.Add(actionModel);    
    }
}

上述紅色標記則是創建Action模型的重點,我們繼續往下看到底滿足哪些條件才創建Action模型呢?

protected virtual ActionModel CreateActionModel(TypeInfo typeInfo, MethodInfo methodInfo)
{
    if (typeInfo == null)
    {
        throw new ArgumentNullException(nameof(typeInfo));
    }

    if (methodInfo == null)
    {
        throw new ArgumentNullException(nameof(methodInfo));
    }

    if (!IsAction(typeInfo, methodInfo))
    {
        return null;
    }    
    ......    
}

到了這個方法裏面,我們找到了如何確定一個方法為Action方法的源頭,由於該方法有點長,這裏我採用文字敘述來作為判斷邏輯,如下:

protected virtual bool IsAction(TypeInfo typeInfo, MethodInfo methodInfo)
{
    //如果有屬性訪問器(無效)

    //如果有NonAction特性標識無效)

    //如果重寫Equals(Object), GetHashCode()方法(無效)

    //如果實現Dispose方法(無效)

    //如果是靜態方法(無效)

    //如果是抽象方法(無效)

    //如果是構造函數(無效)

    //如果是泛型方法(無效)

    //必須為公共方法
    return methodInfo.IsPublic;
}

如上是從方法定義的角度來過濾而獲取Action方法,除此之外,我們請求方法的名稱還可以自定義,比如通過路由、ActionName特性指定,那麼這二者是否存在優先級呢?比如如下示例:

[ApiController]
[Route("[controller]/[action]")]
public class WeatherController : ControllerBase
{
    [HttpGet]
    [ActionName("get1")]
    public string get()
    {
        var routeValue = HttpContext.Request.RouteValues.FirstOrDefault();

        return routeValue.Value.ToString();
    }
}

我們可以看到此時將以ActionName特性作為方法名稱。所以在上述過濾方法定義后開始構建方法模型,在此之後還會再做一步操作,那就是查找該方法是否通過ActionName特性標識,若存在則以ActionName特性標識給定的名稱作為請求方法名稱,否則以方法定義名稱為準,源碼如下:

var actionModel = new ActionModel(methodInfo, attributes);

AddRange(actionModel.Filters, attributes.OfType<IFilterMetadata>());

var actionName = attributes.OfType<ActionNameAttribute>().FirstOrDefault();
if (actionName?.Name != null)
{
    actionModel.ActionName = actionName.Name;
}
else
{
    actionModel.ActionName = methodInfo.Name;
}

還沒完,若是將路由特性放到Action方法上,如下,此時請求接口應該是weather/get還是weather/get1呢?

[ApiController]
public class WeatherController : ControllerBase
{
    [HttpGet]
    [Route("weather/get")]
    [ActionName("get1")]
    public string get()
    {
        var routeValue = HttpContext.Request.RouteValues.FirstOrDefault();

        return routeValue.Value.ToString();
    }
}

此時若我們以weather/get1請求將出現404,還是以路由特性模板給定為準進行請求,但最終會將路由上Action方法名稱通過ActionName特性上的名稱賦值給Action模型中的ActionName進行覆蓋,源碼如下,所以上述我們得到的action名稱為get1,,當然這麼做沒有任何實際意義。

public static void AddRouteValues(ControllerActionDescriptor actionDescriptor,ControllerModel controller,ActionModel action)
{
    foreach (var kvp in action.RouteValues)
    {
        if (!actionDescriptor.RouteValues.ContainsKey(kvp.Key))
        {
            actionDescriptor.RouteValues.Add(kvp.Key, kvp.Value);
        }
    }

    if (!actionDescriptor.RouteValues.ContainsKey("action"))
    {
        actionDescriptor.RouteValues.Add("action", action.ActionName ?? string.Empty);
    }

    if (!actionDescriptor.RouteValues.ContainsKey("controller"))
    {
        actionDescriptor.RouteValues.Add("controller", controller.ControllerName);
    }
}

總結

本文我們只是單獨針對查找Action方法名稱匹配問題做了進一步的探討,根據源碼分析,對Action方法名稱指定會做3步操作:第一,根據方法定義進行過濾篩選,第二,若方法通過AcionName特性標識則以其所給名稱為準,否則以方法名稱為準,最終賦值給ActionModel上的ActionName屬性,第三,將ActionModel上的ActionName值賦值給路由集合中的鍵Action。

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※帶您來了解什麼是 USB CONNECTOR  ?

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

打擊非法捕撈 韓中漁政船聯合巡邏海域

摘錄自2019年10月14日中央社報導

南韓聯合新聞通訊社報導,南韓海洋水產部14日表示,中國漁船的非法捕撈行為導致海洋資源逐漸減少,亟需採取資源管理措施。韓國與中國漁政船即起啟動相關海域聯合巡邏,展開為期7天的打擊非法捕撈行動。執行任務的漁政船為南韓西海漁業管理團所屬「無窮花35號」,中國部分則為海警局北海分局「6306」船艇。

南韓海洋水產部表示,韓中兩國2014年首次執行聯合巡邏,至今共進行8次,總共攔截31艘中國非法捕撈漁船。

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

南投搬家公司費用需注意的眉眉角角,別等搬了再說!

新北清潔公司,居家、辦公、裝潢細清專業服務

※教你寫出一流的銷售文案?

印尼蘇門答臘近海5.9強震 震源深度僅10公里

摘錄自2019年10月13日自由時報報導

,台灣時間15日上午6時23分許,印尼蘇門答臘島西南方近海今天上午發生芮氏規模5.9強震,震源深度僅10公里,為極淺層強震,所幸至今尚無重大災情回傳。

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※想知道最厲害的網頁設計公司"嚨底家"!

※幫你省時又省力,新北清潔一流服務好口碑

※別再煩惱如何寫文案,掌握八大原則!

對抗乾旱 澳洲砸208億改善新南威爾斯省水利設施

摘錄自2019年10月13日中央社報導

新南威爾斯省近年飽受乾旱之苦。路透社報導,澳洲政13日表示,聯邦當局和新南威爾斯省政府將花費6億5000萬澳幣,升級新南威爾斯省中西部的懷安加拉大壩(Wyangala Dam),並投資4億8000萬澳幣,在坦幄斯(Tamworth)附近興建新的頓格萬大壩(Dungowan Dam)。

澳洲總理莫里森(Scott Morrison)在聲明中說:「鄉村和區域社區持續受到乾旱影響,對此,我們的應對方式既全面又堅定。」「這滿足了對財政援助和長期投資的迫切需求,以發展未來的抗旱能力。」

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

新北清潔公司,居家、辦公、裝潢細清專業服務

※別再煩惱如何寫文案,掌握八大原則!

※教你寫出一流的銷售文案?

※超省錢租車方案

市區驚見超巨大蟒蛇蛻皮 澳洲雪梨發布警令

摘錄自2019年10月16日自由時報報導

雪梨西部小鎮錫佛戴爾(Silverdale)居民10日發現一條大蟒蛇的蛻皮出現在鎮上,目擊的民眾立即通報當局,經研判後確認是一條成年巨蟒近期遺留下來的新皮,代表巨蛇有很大機率還藏身於鎮上。

新南威爾士州(NSW)政府隨後發布聲明,向居民描述他們當前面臨的潛在危機,當局除要求民眾一旦目擊應立即通報有關部門外,更警告切勿與蟒蛇有所接觸,以免發生危險。

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

新北清潔公司,居家、辦公、裝潢細清專業服務

※別再煩惱如何寫文案,掌握八大原則!

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※超省錢租車方案

※教你寫出一流的銷售文案?

中央地方攜手合作,全面啟動臺灣智慧水聯網

環保署8月17日在新竹市舉辦「2020臺灣智慧水聯網」啟動發表會,正式發表5種水質感測元件及固定式、移動式、手持式等3款水質感測器,同時發給13個縣市政府400臺感測器,合辦建構我國智慧水聯網。智慧水聯網為打破傳統人工採樣限制,利用水質感測器每分鐘感測河川水體的酸鹼度、電導度、溫度及溶氧,結合地理資訊系統定位,以AI人工智慧即時監控水質在時間及空間上的變化,達到環境智慧執法、推動公民環境教育以及拓展相關產業跨域應用等目標。

智慧水聯網過去4個月試驗應用期間,於3縣市共查獲17件異常案例,有2件地檢署偵辦中,持續追繳罰鍰,在水質感測器輔助下,打擊不肖廠商效果顯著,讓污染無所遁形。環保署為擴大科技執法應用層面,已與全臺13個縣市合作,將布設在陳情或列管工廠集中地區,24小時水質監控不間斷,並將針對偵測的污染,即時智慧派遣查處污染。

環保署表示,除了智慧稽查外,5G時代來臨,環保署所研發之手持式水質感測器具備成本低、使用簡單、結合個人行動裝置等優點,學術單位可利用感測器推動環境教育、探索水體生態等課程,也成為河川巡守隊巡查新利器,鼓勵隊員巡檢並參與污染通報、髒亂清理等工作,讓政府民眾齊心共創護水新生活。

環保署也持續活化產業跨域應用,利用新型感測技術推動各類用水水質管理,促進產業交流與技術媒合,提升產業數位轉型量能。未來環保署將以「優化環境治理、驅動民間感測、開展產業應用」為目標,達到「感測,無水不在;應用,無限可能」數位時代願景!

新聞來源:https://enews.epa.gov.tw/Page/3B3C62C78849F32F/2042f3c7-e254-47af-aeca-3a6999f0178c

【其他文章推薦】

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※想知道最厲害的網頁設計公司“嚨底家”!

※幫你省時又省力,新北清潔一流服務好口碑

※別再煩惱如何寫文案,掌握八大原則!

為吸引蘋果投資電池廠 特斯拉擬秀大眾車款 Model 3

美國豪華電動車製造商特斯拉(Tesla)執行長 Elon Musk 透過 Twitter 暗示要在 10 月 9 日發表與字母「D」有關的神秘商品,究竟會有什麼樣的新品出爐,網路謠言為之沸騰。   Global Equities Research 分析師 Trip Chowdhry 發表研究報告指出,特斯拉可能會在 10 月 9 日發表三件大事,分別是「Model S」電動轎車將增添四輪驅動的新車款、新增半自動自動駕駛甫助系統(semi-autonomous driver-assistance system,簡稱 SADAS),還可能推出大眾車款「Model 3」。   barron`s.com、MarketWatch 3 日報導,Chowdhry 指出,特斯拉超大電池廠「GigaFactory」目前仍有三大潛在投資人──LG Chem、三洋電機(Sanyo)以及蘋果(Apple Inc.),倘若特斯拉能夠秀出需要 GigaFactory 供應電池的 Model 3,那麼這 3 家潛在投資者決定投入的機率也會大為上升。從以上跡象來看,特斯拉很可能會發表 Model 3。   另外,Chowdhry 也預期特斯拉到時候會推出具有四輪驅動系統的新版 Model S,而新增添的半自動自動駕駛甫助系統還將使用以色列自駕車相機防撞感測器開發商 Mobileye N.V. 製作的相機鏡頭。     相關閱讀:

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

新北清潔公司,居家、辦公、裝潢細清專業服務

※推薦評價好的iphone維修中心

特斯拉新款可能推 Model S 超跑版本 3秒加速至 96 公里

美國電動車商特斯拉 (Tesla) 即將在美國時間 10 月 9 日召開媒體大會,發表與字母「D」有關的神秘商品。特斯拉執行長 Elon Musk 一週前透過 Twitter 揭露相關訊息後,現在又再度透露了一點線索。   Vanity Fair 報導,Musk 8 日表示,特斯拉即將發表的神秘商品其實早就現身,只是人們都還沒有意識到而已。他說,網友非常會猜,方向大致都正確,但大家都還沒有意識到規模有多大。   Musk 的說法實在太過含糊,但最新的網路謠言也許可以讓大家稍稍解惑。Electrek 9 日引述訊息人士報導,特斯拉會在 9 日的大會上發表「P85D」,這是「Model S」的超跑版本,只要花 3 秒鐘就可把時速從零加快到 60 英里 (大約 96 公里),速度非常驚人。   根據報導,如此的表現已超越布卡堤 (Bugattis)、藍寶堅尼 (Lamborghinis)、麥拿倫 (Mclarens)、法拉利 (Ferraris)、保時捷 (Porsches) 等市面上最高級的超跑車種。

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※幫你省時又省力,新北清潔一流服務好口碑

※回頭車貨運收費標準