接口不包含方法的定义我有以下两个接口:publicinterfaceIMembershipProvider{objectLogin(ILoginProviderParametersloginParameters);voidSetAuthCookie(stringuserName,boolcreatePersistentCookie);}publicinterfaceIFFacebookMembershipProvider:IMembershipProvider{}和一个恭维:,创建持久性cookie);这被注入我的控制器并分配给:privatereadonlyIFFacebookMembershipProvider_facebookMembershipProvider;我可以毫无问题地调用Login方法,但是当我调用SetAuthCookie方法时:_facebookMembershipProvider.SetAuthCookie(user.id,false);我收到错误消息:MyNamespace.UserManagement.Interfaces.IFacebookMembershipProvider'不包含'SetAuthCookie'的定义我使用Login方法与使用SetAuthCookie方法有何不同?清除转换为类型IMembershipProvier工作正常:((IMembershipProvider)_facebookMembershipProvider).SetAuthCookie(user.id,false);我可能只是遗漏了一些粗糙的东西感谢您的访问。更新在回答Marks问题时,传递给SetAuthCookie方法的第一个参数来自动态对象。动态用户=_authorizeUserCommand.Invoke(_authorizeUserParams);诅咒动态(评论)!动态出血。特别是,每当表达式中包含dynamic时,整个操作都是使用动态规则执行的,这会在许多点上引入细微的变化。我的建议:先固定值:stringid=user.id;//这有一个隐式转换为字符串_facebookMembershipProvider.SetAuthCookie(id,false);这应该可以正常工作。您还可以使用:_facebookMembershipProvider.SetAuthCookie((string)user.id,false);该调用不是动态的,因为显式转换应该在参数处结束表达式的动态部分。以上是C#学习教程:接口不包含方法的定义。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权请点击右侧联系管理员删除。如需转载请注明出处:
